簡體   English   中英

jQuery.ajax()拋出錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM