我似乎无法找到一种方法来忽略for(;;);
跨域 JSONP 请求的响应正文中的 。我在自己的服务器上执行此操作,这里没有其他内容。我正在尝试将其包含for(;;);
在回调的响应正文中,如下所示:
_callbacks_.callback(for(;;);[jsondata....]);
但是如何在解析 JS 代码之前将其从响应正文中删除?顺便说一句,我正在使用 Google Closure Library。
我似乎无法找到一种方法来忽略for(;;);
跨域 JSONP 请求的响应正文中的 。我在自己的服务器上执行此操作,这里没有其他内容。我正在尝试将其包含for(;;);
在回调的响应正文中,如下所示:
_callbacks_.callback(for(;;);[jsondata....]);
但是如何在解析 JS 代码之前将其从响应正文中删除?顺便说一句,我正在使用 Google Closure Library。
好吧,我想我明白了。for(;;); 的原因 是否有防止某些信息的跨域数据请求。所以基本上,如果你有信息,你试图保护你通过一个正常的 Ajax JSON 通道,如果你在多个服务器上存储数据,你在服务器级别处理它。
JSONP 请求实际上是一个远程脚本包含,这意味着无论服务器输出什么都是实际的 Javascript 代码,所以如果你有一个for(;;);
before 你_callbacks_.callback();
的代码将在请求成功时在源域上执行。如果是无限for循环,显然会卡住页面。
所以正常的实现方法如下:
for(;;);
或while(1);
或throw(1);
后跟一个<prevent eval statements>
字符串。只是想我应该把它放在这里,以防其他人将来谷歌它,因为我没有通过谷歌找到合适的信息。这应该有助于防止跨域请求伪造。