1:A域服务器端输出json如下$test = "{name:\"John\", message:\"hello John\"}";
echo $test;2:B域服务端程序如下function sendEmail() {
var orderingId = $("#orderingId").val();
 alert(orderingId);
 $.ajax({
 type: "get",
 url:"http://www.testB.com/cronemail/cron_expressmail.php?orderingid=2222",
 cache : false, 
 dataType : "jsonp",
 jsonp: "callbackfun",
 jsonpCallback:"jsonpCallback",
                 success:function (json) {
alert(json.message);
}
 })
}可是页面提示错误:
用户代理: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
时间戳: Tue, 22 Oct 2013 10:48:39 UTC
消息: Script error
行: 0
字符: 0
代码: 0
URI: http://www.test.com/cronemail/cron_expressmail.php?orderingid=2222&callbackfun=jsonpCallback&_=1382438914750

解决方案 »

  1.   

    ajax 不能跨域,这是不争的事实
    你的代码只是形式上的跨域,实际上是
    <script src='http://www.testB.com/cronemail/cron_expressmail.php?orderingid=2222'></script>
    所以该 url 必须返回合法的 js 语句
    仅仅一个 json 串是不够的
      

  2.   

    $test = "{name:\"John\", message:\"hello John\"}";
    echo $_GET['callbackfun'].'('.$test.')';