这是我的PHP页面(在其他URL上)...

<?php
header('Content-Type: application/json');
?>
stat({"online":1});


这是我的jQuery:

$(document).ready(function(){

    var url = 'http://blah.com/jsontest.php?callback=stat';

    $.getJSON(url, function(data) {
        if (data.online !== undefined) {
            console.log('yay');
        }
    }).error(function() {
        console.log('no');
    });

});


由于某种原因,它总是记录为``否'',即它运行错误功能。

使用jQuery 1.5.2有什么想法吗?

最佳答案

首先,JSON-P不是JSON。内容类型应为application/javascript。一些浏览器可能由于不安全而拒绝用作JSON的JSON-P。

其次,getJSON期望您请求的URL的回调方法名称带有?(并且您将需要使PHP注意$_GET['callback'])。

第三,如果修复不起作用,请查看Firebug / Chrome调试器/ Dragonfly / etc等中的“网络”选项卡,看看实际上有什么数据通过网络传输。

关于php - 对PHP页面的JSONP请求不起作用(跨域),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5896965/

10-12 00:39
查看更多