2014-05-21 77 views
2

MooTools的Request.JSONP方法只有onRequest,onTimeout和的onSuccess事件处理结果。如何处理500错误

我试图调用使用JSONP的web API,但是当在服务端错误,我们的开发人员返回一个500有效的JSON描述错误。

是否有使用MooTools的Request.JSONP赶上500错误的方法吗? (在我们的具体情况下,Request.JSON不是一个选项)。

是始终返回JSONP 200唯一的解决办法?

我正在使用更多版本1.4.0.1

干杯。

回答

0

Request.JSONP仅仅是一个远程脚本注入。然后它将回应/序列化回应。它实际上并不依赖于XHR,因此它无法解释HTTP响应代码。

如果你想这样做,你需要使用正常的Request.JSON并且启用CORS来允许外部域。

否则,没有什么可以做:

https://github.com/mootools/mootools-more/blob/master/Source/Request/Request.JSONP.js#L85-L104

你大概可以继承这一点,并在success方法中添加不同的逻辑来触发错误等时,你必须响应,如果一个特定的类型,在你自己的W/O上进行服务器语义的帮助。祝你好运

+1

这和我的想法完全一样 - 我主要是懒惰的希望有一个超级聪明的方式来检测脚本标记加载失败。另外,我们确实在服务器上安装了完整的CORS,并且通常使用JSON x站点而不用担心,但是,我们用IE7和IE8打了一些墙(我们必须支持 - 但这是另一回事!) 我们的解决方案是,如果设置了回调支持(JSONP),则服务始终返回200,并且如果出现问题,则始终在生成的JSON中包含错误节点。这工作很好,一路回到IE6 *不寒而栗* 谢谢。 – Eclectic