【问题标题】:Dojo XHR treats 200 OK as errorDojo XHR 将 200 OK 视为错误
【发布时间】:2015-06-12 03:59:14
【问题描述】:

我使用 Dojo xhr 将一些数据发布到 ASP.NET MVC 控制器:

xhr.post("/MyController", {
       handleAs: "json",
       data: {
          contentIdentifier: 'abc123',
          language: 'en'
        }
     }).then(function (response) {
         console.log('Success.');
     }, function (err) {
         console.error(err);
     });

控制器返回纯文本结果,我可以看到服务器的响应确实是200 OK。

但是,错误处理程序总是被触发。

当将 err 输出到控制台时,我得到如下信息:

SyntaxError: Unexpected token S
message: "Unexpected token S"
response: { 
   options: TMP
   status: 200
   text: "Successfully pushed content to 1 instance(s)."

在我看来,错误是因为它无法将纯文本响应解析为 JSON? IE。 “成功”一词中的第一个“S”是什么破坏了 xhr?

响应的内容类型是text/plain

【问题讨论】:

  • 也许我可以指定只有请求应该作为 JSON 处理,而不是响应?

标签: javascript asp.net ajax asp.net-mvc dojo


【解决方案1】:

哦。

根据 Dojo 文档的 handleAs 参数:

用于处理响应负载的内容处理程序。

换句话说,将 handleAs 设置为 "text" 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2016-04-22
    相关资源
    最近更新 更多