1

我正在尝试启用外部资源以向我的服务器发出 GET 请求。现在我只是在我的个人服务器上通过godaddy托管来测试它。这可能是个问题吗?

我在尝试发出请求的页面上有以下代码

//page.php
<?php
header("Content-Type: application/json")
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');  

include_once 'php_dom/simple_html_dom.php';
include_once 'phpQuery.php';


if(isset($_GET['item'])){
    echo json_encode(array("data" => $_GET['item']));
}
else{
    echo json_encode(array("Error"=>"No item provided"));
}

我尝试提出这样的请求(显然是使用我的 URL),但我没有得到任何回报。

$.getJSON("http://www.example.com/page.php?item=123&format=json&callback=?", function(data) {
    alert(data);
});

Chrome 开发人员显示成功的请求,但没有返回任何内容。我做错了什么吗?

4

1 回答 1

2

当您使用时callback=?,响应将作为 JSONP 处理。尝试这样的事情:

if(isset($_GET['item']) && isset($_GET['callback'])){
    echo $_GET['callback'].'('.json_encode(array("data" => $_GET['item'])).');';
}

...或省略回调参数。

于 2013-04-18T00:41:26.720 回答