2012-03-10 4 views
1

Я использую этот jQuery.ajax:JQuery Ajax - не может получить ответ

var url = "http://client.my_url.com/test_get_account_data.php"; 
jQuery.ajax({ 
    type: "GET", 
    url: url, 
    cache: false, 
    success: function(resultsData){ 
     alert("We're finally making the call."); 
    }, 
    error:function (jqXHR, textStatus, errorThrown){ 
     alert("Error:" + textStatus+ "," + errorThrown); 
    } 
}); 

Чтобы поразить этот скрипт:

<?php 
header("Content-Type: text/plain"); 

$myFile = "LogFile.log"; 
$fh = fopen($myFile, 'w'); 

$accountJSON = array("id"=>"Level 3.accountName","type"=>"Level 3","name"=>"accountName","total"=>"1059.25","in"=>"8603.56","out"=>"7544.31"); 

$encodedResponse = json_encode($accountJSON); 

fwrite($fh, "We're at the end of get_account_data with encodedResponse:\n"); 
fwrite($fh, $encodedResponse."\n"); 

echo $encodedResponse; 
?> 

Но по какой-то причине, я никогда не получить успеха , Я упростил это настолько, насколько могу себе представить, но он все еще терпит неудачу. В журнале, у меня есть выход:

We're at the end of get_account_data with encodedResponse:<br/> 
{"id":"Level 3.accountName", "type":"Level 3", "name":"accountName", "total":"1059.25", "in":"8603.56", "out":"7544.31"} 

Кто-нибудь есть какие-либо предложения? Я бы подумал, что это будет очень легко ... и, возможно, это так, и я просто делаю что-то глупое.

Благодаря

+0

Что говорит консоль ошибок Javascript вашего браузера? –

+1

Является ли ваша веб-страница в том же домене, что и сервер PHP? Консоль консоли или консоль отладки вашего браузера сообщают о любых ошибках javascript или ошибках безопасности? – jfriend00

+0

Tried 'header (" Content-Type: application/json ");'? Вы на самом деле не отправляете обратно обычный текст? – Matijs

ответ

0

Кажется, вы пытаетесь вызвать http://client.my_url.com с AJAX GET запрос от http://localhost:8080

По same origin policy браузеров вы не можете отправить AJAX GET/POST запросы на другой домен. Вы должны использовать JSONP для кросс-домена AJAX.

+0

Могу ли я сделать передачу как обычный текст? JSONP не разрешает неасинхронные вызовы и один из звонков, которые мне нужны чтобы внести необходимые изменения. Я внес изменения, чтобы заголовок ответа имел: «Content-Type: text/plain», и я добавил параметр «dataType:« text »,« ajax », но, похоже, возвращай что-нибудь. :( – JMecham

+0

Мне потребовалось больше времени, чем я хотел бы признать, что JSONP работает, но сейчас. Если кто-то еще столкнется с этой проблемой, перейдите сюда для получения дополнительной информации: http://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using -jsonp-jquery-and-php/ http://www.geekality.net/2010/06/27/php-how-to-easily-provide-json-and-jsonp/ – JMecham

Смежные вопросы