所以我有一個腳本在我試圖從中獲取數據的外部服務器上。我的JSONP代碼嘗試有什麼問題?
這是一個PHP腳本調用test.php的,它具有以下內:
<?php
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$parts = parse_url($url);
parse_str($parts['query'], $query);
$limit = $query['limit'];
$return_array["result"] = $limit;
echo json_encode($return_array);
?>
於是我就用發送呼叫到該服務器執行以下操作:
/* this is included in head */
<script src="http://some-website.com/get-text/index.php?limit=10&q=returnText"></script>
/* in Body */
<script>
function returnText(data) {
console.log('result: ' + data);
}
</script>
當你去那個php頁面本身的輸出是
{"result":"10"}
但是當我運行帶JavaScript代碼的文件時我g等了一個錯誤:?
的index.php限值爲10 & Q = returnText:1未捕獲的SyntaxError:意外的標記:
當你點擊鏈接就這一錯誤行我看到的權利:
{"result":"10"}
用紅色下劃線從冒號開始並向右。
我看到某處確保JSONP已啓用,它看起來不像是實際的服務器配置或其他東西。
我在做什麼錯?
當你說「包裹JSON在函數調用」你是說只是回聲encode_json($陣列),而不是我會做一些事情,如回聲「使用functionName( 」 .encode_json($陣列);.).;抱歉不是一個好主意,嘗試在評論部分發布格式化的代碼。 –
哦,那個笨拙的腳本/函數的順序,謝謝我會嘗試你的建議。 –
aaaahhhhhhhhhhhhhh我使它工作!謝謝你,先生。至少我覺得我做到了。我甚至不必把「回調」放在參數中。我只是回顯了與json_encode行連接的函數名稱。這比我得到的感謝你更遠。 –