[英]'Uncaught Syntax Error: Unexpected token :' in JSONP AJAX request
我已经阅读了类似此类问题的许多答案,但没有找到适合我的正确解决方案,因此我不得不提出疑问。 这是我的代码:
$.ajax({
url: 'http://beta.zelenaposta.sk/oauth/request-token',
dataType: 'jsonp',
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
data: {
oauth_consumer_key: some_value,
oauth_signature: some_other_value,
oauth_signature_method: 'PLAINTEXT'
}
}).done(function(data) {
console.log(data);
}).fail(function(jqXHR,errorThrown, data){
console.log(errorThrown);
console.log(jqXHR.responseText);
console.log(jqXHR.status);
})
这是获取请求令牌的方法:
POST /oauth/request-token HTTP/1.1
Host: zelenaposta.sk
Content-Type: application/x-www-form-urlencoded
oauth_consumer_key=some_value&
oauth_signature=some_other_value&
oauth_signature_method=PLAINTEXT
该请求发送以下响应(如果成功):
{
"token": "some_new_value",
"error": false,
"errorMessage": null
}
这是我得到的错误:
errorThrown =解析器错误
jqXHR.responseText = null
未捕获到的SyntaxError:意外令牌:
如何摆脱这些错误? 由于跨站点脚本编写,我需要使用JSONP,但是我对发布请求的服务器没有任何访问权限。 我真的很感谢任何帮助。
我也遇到了同样的问题,结果是有一些特殊的字符导致了解析错误:无法解析诸如“ /”,“ / n”,“ / t”之类的字符/子字符串。 我所做的是在返回JSON之前在WebMethod函数中进行了替换。
json = json.Replace("\\n", "\\\\n");
json = json.Replace("\\t", "\\\\t");
json = json.Replace("\\\"", "\\\\\"");
请注意其中的反斜杠数量:)我发现了使用Firefox和Firebug的问题所在,该错误的详细信息比一个Chrome控制台提供的更多。 一个非常有用的提示是解析错误发生的确切列,这帮助我找到了字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.