【问题标题】:jQuery: catching jsonp 400 Bad Request?jQuery:捕获 jsonp 400 错误请求?
【发布时间】:2011-06-18 21:01:05
【问题描述】:

如何在 jsonp 请求中捕获 400 标头并处理错误回调?

或者这是一个错误?

这是一个例子:

http://jsfiddle.net/pLuPb/

既没有错误,也没有触发完成?如何捕捉错误?

我被诅咒了?上周我遇到了这种问题......:D

我想我得把这个报告给 jQuery tracker。

谢谢 ;)

【问题讨论】:

  • 我认为这不是 JSONP 的问题,而是 youtube 的错误。你从哪里得到这个 API 地址的?
  • 你不明白。它是什么网址并不重要。如果它无效,我应该从 Google 捕获错误请求,记录错误链接并向用户显示消息。
  • 谷歌有视频ID匹配模式吗?这样我就可以通过模式检查 id 然后启动 ajax?猜不到。
  • 确实如此。看这里gdata.youtube.com/feeds/api/videos/… 它将返回“找不到文件”,这是 youtube 的问题。它返回 400 给你的 ajax 处理程序
  • 那么有没有解决无效 youtube 链接的方法?

标签: jquery http-status-code-400


【解决方案1】:

jsopn 不是常规的 ajax 请求,它实际上在你的 DOM 中创建了一个脚本标签,这就是 jsonp 响应数据格式为 abc_FunctionName(data) 的原因,你可以直接将数据获取到该函数中。但是 jQuery 会自动为你做这件事,所以你永远不会遇到那个部分。

要处理 jsonp 错误,请使用此插件 http://code.google.com/p/jquery-jsonp/

【讨论】:

    【解决方案2】:

    JSONP 不像普通的 AJAX 请求,它使用脚本标签来获取内容。话虽如此,jQuery 应该能够捕获 400 之类的错误,但奇怪的是它没有。

    您可能希望在 ajax 配置对象中添加超时:http://jsfiddle.net/pLuPb/18/

    您也可以执行类似自己的 JSONP 处理程序:http://jsfiddle.net/6j6uk/(不确定 X-Browser 支持)

    【讨论】:

      猜你喜欢
      • 2020-04-23
      • 2013-06-30
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      相关资源
      最近更新 更多