繁体   English   中英

JSONP AJAX请求中的“未捕获的语法错误:意外的令牌:”

[英]'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM