[英]Origin is not allowed by Access-Control-Allow-Origin
我不斷收到此錯誤
1資源解釋為腳本,但使用 MIME 類型 application/json 傳輸。
我正在嘗試使用 jquery 查詢從一個單獨的域上的 php 文件中獲取我的 json 文件,這是我的 ZE134FD7623EZEZ40 代碼。
json.php
<?php
header('Content-type: application/json');
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
這是我的 jquery
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var surl = "http://dropp.users35.interdns.co.uk/json.php";
$.getJSON(surl, function(rtndata) {
console.log(rtndata);
});
});
</script>
好的,如果我將 url 更改為
http://dropp.users35.interdns.co.uk/json.php?callback= ?
然后我得到這個錯誤??????
1Resource interpreted as Script but transferred with MIME type application/json.
我相信您的問題的答案涉及使用 JSONP,因為它涉及跨域腳本......
它在 StackOverflow 上的幾個類似問題中進行了討論: 資源解釋為腳本,但使用 MIME 類型 application/json 傳輸。 & 解析器錯誤
在這里: https://stackoverflow.com/questions/267546/correct-http-header-for-json-file
無論我是否指定callback=
,返回的 javascript 中都沒有回調:
$ curl -v http://dropp.users35.interdns.co.uk/json.php?callback=test_callback
* About to connect() to dropp.users35.interdns.co.uk port 80 (#0)
* Trying 83.170.124.37... connected
* Connected to dropp.users35.interdns.co.uk (83.170.124.37) port 80 (#0)
> GET /json.php?callback=test_callback HTTP/1.1
> User-Agent: curl/7.21.3 (x86_64-pc-linux-gnu) libcurl/7.21.3
> Host: dropp.users35.interdns.co.uk
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 16 Aug 2011 03:04:35 GMT
< Server: Apache
< X-Powered-By: PHP/5.3.2-1ubuntu4.9
< Transfer-Encoding: chunked
< Content-Type: application/json
<
* Connection #0 to host dropp.users35.interdns.co.uk left intact
* Closing connection #0
{"a":1,"b":2,"c":3,"d":4,"e":5}
如果您希望 JSON 工作,您必須使用回調包裝您的 JSON:
test_callback({"a":1,"b":2,"c":3,"d":4,"e":5});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.