【发布时间】:2017-12-01 16:32:33
【问题描述】:
我需要构建一个跨域脚本,我决定使用 jsonp 而不是 CORS(我发现它更容易)
这是我的 JS 客户端代码:
function logResults(json){
alert(json);
}
$.ajax({
url: "https://my-server-domain.com/api_gt/test/new2.php",
dataType: "jsonp",
jsonpCallback: "logResults"
});
这是我的 PHP 代码 (new2.php)
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>
当我执行这个时,我得到了 https://my-server-domain.com/api_gt/test/new2.phpcallback=logResults&_=1498645452001 返回 404(未找到)
但是当我调用:https://api.github.com/users/jeresig 而不是 https://my-server-domain.com/api_gt/test/new2.php 时,一切都很好。
注意:当我输入 https://my-server-domain.com/api_gt/test/new2.php 时,我看到了返回的 json,这是我应该看到的(所以代码可以正常工作)
我错过了什么吗? 也许我错过了服务器端的某些东西,例如某种标题? 也许我的 json 有问题?
我已经在这上面花了 2 天时间,如果有任何提示,我将不胜感激。
【问题讨论】:
-
以下网址是否有效?我添加了一个问号:my-server-domain.com/api_gt/test/…
-
不幸的是我遇到了同样的错误
-
看来问题是该页面不支持https。你可以试试my-server-domain.com/api_gt/test/new2.php吗?
标签: javascript php rest api jsonp