【问题标题】:Cross-domain: Parse error / Failed to load resource with JSON Ajax Call跨域:解析错误/无法使用 JSON Ajax 调用加载资源
【发布时间】:2014-06-21 10:08:56
【问题描述】:

在我们公司,我们有一个代理可以向手机发送短信,但由于一些跨域问题,我无法获得回复...因为该应用位于 myCompanyurl.com 上 而短信应用在 myProxyCompanyurl.com 上

jQuery.get("http://myproxycompanyurl.com/proxy.php?type=text&mesg=Hello&output=json&number=000000000&callback=?",
      function(response) {
           console.log('test');
           console.log(response);
      }
);

在我的调试控制台中:

> test
> Failed to load resource: cancelled

如果我使用 getJSON

jQuery.getJSON("http://myproxycompanyurl.com/proxy.php?type=text&mesg=Hello&output=json&number=000000000&callback=?",
      function(response) {
           console.log('test');
           console.log(response);
      }
);

在我的调试控制台中:

> Parse Error

关键是,在这两种情况下,短信应用程序都能正常工作...我在手机上收到短信,但问题是我无法得到回复,因此我可以向我的用户发送消息/提醒一切正常。 ..

【问题讨论】:

  • 解析错误是由于括号不匹配:打开一个{,关闭两个}
  • 对不起我的错字,但我的代码是正确的
  • 您找到解决此错误的方法了吗?

标签: jquery ajax json cross-domain


【解决方案1】:

来自 MyProxyCompanyUrl.com 的“JSON”响应,这将引发 XMLHttpRequest cannot load http://pubapi.cryptsy.com/api.php?method=marketdatav2。由于跨域问题,请求的资源上不存在“Access-Control-Allow-Origin”标头。

您可以更改您的代理站点以返回“JSONP”,而不是可以毫无问题地加载

$(document).ready(function () {
$.ajax({
    type: 'GET',
    url: 'http://myproxycompanyurl.com/proxy.php?type=text&mesg=Hello&output=json&number=000000000&callback=?',
    dataType: 'jsonp',
    success: function (data) {
        console.log(data);
    }
});

});

或者,如果您无权访问您的代理站点,您可以使用第三方为您执行此操作。例如:jsonp.guffa.com,您在该站点的代理 jsonp url 将是 http://jsonp.guffa.com/Proxy.ashx?url=http://myproxycompanyurl.com/proxy.php?type=text&mesg=Hello&output=json&number=000000000&callback=?

【讨论】:

    【解决方案2】:

    好吧,#2 中的错误消息说明了一切……您的服务器返回了无效的 JSON,因此无法解析。

    查看实际响应文本,如下所示:http://json.parser.online.fr/,看看问题出在哪里。

    【讨论】:

      猜你喜欢
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多