jQuery Ajax调用没有找到元素问题

nim*_*imi 22 javascript jquery

我试图调用ajax方法时在firefox 3.5上收到javascript错误.

请在下面找到错误:

XML Parsing Error: no element found Location: moz-nullprincipal:{1a2c8133-f48f-4707-90f3-1a2b2f2d62e2} Line Number 1, Column 1:

^
Run Code Online (Sandbox Code Playgroud)

这是我的javascript函数:

function Update(Id) {
    $.ajax({
        type: "GET",
        url: ROOT_URL + "/sevice/udates.svc/Update?Id=" + Id,
        success: function(response) {

        },
        async: false
    });
}
Run Code Online (Sandbox Code Playgroud)

mim*_*imo 25

我通过将mimeType设置为"text/html"来解决问题

  • AWS S3 PUT请求返回200状态代码而没有ContentType,因此jQuery会抛出此错误.添加`dataType:'text'将无济于事,但添加`mimeType:'text/html'将有所帮助. (6认同)

Gab*_*oli 18

ajax调用期望XML返回(可能是由于猜测错误)并尝试解析它并且如果没有返回任何内容或者它不是有效的XML则会失败.

使用该dataType选项指定响应的格式.


从评论看起来有些浏览器无法处理无内容响应.因此,针对此类情况的解决方法可能是从您的服务(甚至单个空间)返回一些内容.


Cha*_*esA 8

我遇到过另一个原因 - 可能对某人有所帮助.

如果你发出一个$.ajax请求(在我的情况下是一个PUT请求),它返回一个200标题,但是没有正文内容我已经看到同样的XML解析错误消息 - 即使dataType设置为json.

(至少)两种解决方案有效:

  • 使所有API PUT请求返回一些内容,或
  • 返回一个204'无内容'标题(我最终做了什么)

  • 我已经返回了204的DELETE,没有响应主体,但我仍然看到这一点。:( (2认同)

ran*_*all 5

这是一个已知的 FireFox 错误。 https://bugzilla.mozilla.org/show_bug.cgi?id=547718 要快速修复此问题,您也许可以返回带有 html 结构的响应(但没有内容)。