Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';未捕获语法错误:意外标记:';在JSONPAJAX请求中_Javascript_Jquery_Oauth 2.0_Jsonp_Xss - Fatal编程技术网

Javascript ';未捕获语法错误:意外标记:';在JSONPAJAX请求中

Javascript ';未捕获语法错误:意外标记:';在JSONPAJAX请求中,javascript,jquery,oauth-2.0,jsonp,xss,Javascript,Jquery,Oauth 2.0,Jsonp,Xss,我已经读了很多类似问题的答案,但没有找到适合我的正确解决方案,所以我不得不问。这是我的密码: $.ajax({ url: 'http://beta.zelenaposta.sk/oauth/request-token', dataType: 'jsonp', type: 'POST', contentType: 'application/x-www-form-urlencoded', data: { oauth_consumer_key:

我已经读了很多类似问题的答案,但没有找到适合我的正确解决方案,所以我不得不问。这是我的密码:

$.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
此请求发送此响应(如果成功):

下面是我得到的错误:

errorThrown=parserror
jqXHR.responseText=null
未捕获的语法错误:意外标记:


我怎样才能消除这些错误?由于跨站点脚本,我需要使用JSONP,并且我无法访问发布请求的服务器。我非常感谢任何帮助。

我也遇到了同样的问题,结果是有一些特殊字符导致了解析错误:无法解析字符/子字符串,如“/”、“/n”、“/t”。我所做的是在返回JSON之前替换WebMethod函数

        json = json.Replace("\\n", "\\\\n");
        json = json.Replace("\\t", "\\\\t");
        json = json.Replace("\\\"", "\\\\\"");
请注意其中的反斜杠数:)
我发现了使用Firefox和Firebug的问题所在,这个错误比Chrome控制台给我的信息要详细得多。一个非常有用的提示是发生解析错误的确切列,它帮助我找到了字符。

听起来您请求的服务器不支持JSONP。如果它们也不支持CORS,您可能需要使用服务器端代理。@Rorymcrossan Ok所以正确的方法是使用一些php文件作为代理?包含文件内容(web页面url?参数)并从我的js代码调用它的Php文件?我理解正确了吗?是的,这对你很有用。非常感谢你的帮助:-)
        json = json.Replace("\\n", "\\\\n");
        json = json.Replace("\\t", "\\\\t");
        json = json.Replace("\\\"", "\\\\\"");