首页 > 解决方案 > 跨域 AJAX 得到响应,但在错误消息中

问题描述

我需要为服务器发出跨域 ajax 请求,?t=bla如果成功则得到以下响应:

{"success":"yeeee","blaOne":"blabla","blaTwo":"blablabla"}

错误也是如此,只是代替yeeee, 它是boooo.

如果是则成功,如果是则?t=bla失败?t=hm

我做了这样的事情:

$.ajax({
  method: "GET",
  url: "http://...",
  crossDomain: true,
  data: {t:'bla'},
  dataType: "jsonp"
}).then(function(response){
  console.log(JSON.stringify(response));
}).catch(function(error){
  console.log(JSON.stringify(error));
})

结果,我得到了Uncaught SyntaxError: Unexpected token :,但我能够在浏览器的资源文件中看到带有yeeee消息的响应!它是其中之一.catch(function(error)。如果我更改data: {t:'hm'}- 我会收到适当的(boooo)消息,但同样,它是 .catch(function(error).

任何想法为什么会发生这种情况以及我能做些什么?

我无权访问服务器。

如果没有办法处理这个问题并且这是服务器的问题,在这种情况下我如何访问结果消息(我可以吗?)

更新:

我在请求的资源上出现 No 'Access-Control-Allow-Origin' 标头是我使用 JSON 而不是 JSONP ...我得到的状态是 200

标签: javascriptjqueryajax

解决方案


推荐阅读