Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 有没有理由不将JSONP用于AJA~X请求?_Javascript_Ajax_Json_Jsonp - Fatal编程技术网

Javascript 有没有理由不将JSONP用于AJA~X请求?

Javascript 有没有理由不将JSONP用于AJA~X请求?,javascript,ajax,json,jsonp,Javascript,Ajax,Json,Jsonp,如果您正在构建一个AJA~Xy应用程序,那么即使您没有计划跨域请求,使用JSONP请求/响应是否有任何不利之处 我能想到的唯一一件事是回调包装器有几个额外的字节 编辑: 我发现这也表明安全性和错误处理是潜在的问题 没有错误处理。脚本注入要么有效,要么无效。 如果注入发生错误,它将命中页面,并且缺少窗口范围的错误处理程序(糟糕、糟糕、非常糟糕),您需要确保返回值在服务器端有效 我认为错误处理不是什么大问题。。。我们大多数人都会使用库来生成JSON。。。对于这个问题,我的回答是否恰当并不重要 和安全

如果您正在构建一个
AJA~Xy
应用程序,那么即使您没有计划跨域
请求,使用
JSONP
请求/响应是否有任何不利之处

我能想到的唯一一件事是回调包装器有几个额外的字节

编辑:

我发现这也表明
安全性和错误处理
是潜在的问题

没有错误处理。
脚本注入
要么有效,要么无效。 如果
注入发生错误
,它将命中页面,并且缺少窗口范围的错误处理程序(糟糕、糟糕、非常糟糕),您需要确保返回值在
服务器端有效

我认为
错误处理
不是什么大问题。。。我们大多数人都会使用库来生成
JSON
。。。对于这个问题,我的回答是否恰当并不重要

和安全性:

网上有一些文档可以提供帮助,但作为粗略检查,我会在
服务器端
脚本中检查推荐人


这似乎是一个潜在的问题与任何类型的反应。。。当然,
JSONP
在安全领域没有什么独特之处…?

我想说,最大的限制可能是浏览器呈现脚本标记以调用服务器的额外开销。另外,由于JSONP实际上没有使用XMLHttpRequest对象,它真的被认为是AJAX吗?

缺点是什么?这是相当有限的——您触发一个“GET”请求,并返回一些已执行的脚本。如果服务器抛出错误,则不会得到错误处理,因此还需要将所有错误包装为JSON。您无法真正取消或重试该请求。对于动态生成的
标记,浏览器作者对“正确”行为的各种看法决定了您的命运。调试有些困难


也就是说,我偶尔也用过它,但我没有受苦。YMMV.

在jsonp调用失败时检索错误是可能的


希望它有帮助。

< P>这是你想用JSONP考虑的另一点。可能的内存泄漏


嗯,这不是XMLHttpRequest吗?是的,我打字太快了,把它搞错了。只是好奇,为什么是“AJA~X”而不是“Ajax”?这是一种强调数据格式不是XML的噱头吗?是的。。。很抱歉我觉得有点诡计