1
我似乎无法找到一种方法来忽略我的跨域JSONP请求的响应正文中的for(;;);
。我在我自己的服务器上这样做,没有其他任何事情在这里。我想包括for(;;);
我的回调的响应体内这样:JSON/JSONP如何使用(;;);在恢复正文
_callbacks_.callback(for(;;);[jsondata....]);
但如何从响应体中取出的JS代码被分析之前?我正在使用谷歌关闭库btw。
我似乎无法找到一种方法来忽略我的跨域JSONP请求的响应正文中的for(;;);
。我在我自己的服务器上这样做,没有其他任何事情在这里。我想包括for(;;);
我的回调的响应体内这样:JSON/JSONP如何使用(;;);在恢复正文
_callbacks_.callback(for(;;);[jsondata....]);
但如何从响应体中取出的JS代码被分析之前?我正在使用谷歌关闭库btw。
好吧我想我想通了。 (;;);的原因是否有防止某些信息跨域数据请求。所以基本上,如果你有信息,你试图保护你通过一个正常的Ajax JSON频道,如果你在多台服务器上存储数据,你在服务器级别处理它。
JSONP请求实际上是一个远程脚本包容,这意味着无论服务器输出是实际的Javascript代码,所以如果你有你的_callbacks_.callback();
前for(;;);
代码将关于请求成功的原始域执行。如果它是一个无限循环,它显然会堵塞页面。
所以正常的实现方法如下:
for(;;);
或while(1);
或throw(1);
后跟一个<prevent eval statements>
字符串。只是想我应该把这个在这里以防其他人将来使用Google,因为Google没有找到适当的信息。这应该有助于防止跨域请求伪造。
这是一个语法错误?不,你不能编辑JSONP代码repsonses。谁包括这个,是你的服务器? – Bergi