[英]Jquery.ajax() throw error
嘗試以下鏈接: http : //humberinteractive.com/2013/api/index.php?fname=keo
您會看到它需要$ _GET ['fname']並打印出我需要的內容。
我試過了:
$.ajax({
type: 'GET',
url: 'http://humberinteractive.com/2013/api/index.php?fname=keo',
success: function(data) {
alert(data);
}
});
但這行不通...
jsfiddle: http : //jsfiddle.net/3V8VP/
幫忙
在您的小提琴中,此操作失敗,因為不允許跨域原始ajax請求。 常見的解決方法是改用JSONP。 如果您的最終應用程序位於同一域中,這將不是問題。 JSONP代碼如下所示:
<?php
$data = array("some" => "data"); // make this part yourself
$callback_name = $_REQUEST["callback"];
echo $callback_name . "(" . encode_json($data) . ")";
?>
接下來,數據格式不可用。 要將數據從PHP傳遞到Javascript,應使用JSON。 使用php時,將數組/對象轉換為JSON格式的函數是json_encode 。
最后,在回答JSON對象時,請確保發送正確的mime類型。 (具有正確參數的PHP函數header()
應該可以)
如果您在其他域上執行此操作,則可能會被阻止為同源策略。
那么您可以嘗試使用JSONP來做到這一點。
通過這種方式,為ajax方法的參數指定dataType: "jsonp"
,然后jquery將為您的成功方法創建一個別名xxxxxxxx
,並且AJAX請求將使用參數callback=xxxxxxxxxx
發送。
在服務器端,您需要捕獲回調名稱,並輸出與回調名稱類似的json數據,如xxxxxxxxx({....})
最終,您的客戶端將直接運行此輸出。
例如:
js:
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://humberinteractive.com/2013/api/index.php?fname=keo',
success: function(data) {
alert(data);
}
});
服務器端,例如php:
<?php
// some logic ......
$json_string = encode_json($data_you_wanna_output);
echo $_GET['callback'] ."(". $json_string .")";
?>
嘗試這個:
$.ajax({type: "POST",
url: 'http://humberinteractive.com/2013/api/index.php',
data: {'fname': 'keo'}
}).done(function( data) {alert(data);});
我不知道如何評論和回復你。 但這絕對是一些原產地政策。
以下消息是Chrome控制台中顯示的消息。
XMLHttpRequest無法加載http://humberinteractive.com/2013/api/index.php?fname=keo 。 Access-Control-Allow-Origin不允許使用來源http://fiddle.jshell.net 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.