Dojo XHR将200 OK视为错误

时间:2015-04-07 14:06:15

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

我使用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

但是,始终会触发错误处理程序。

当输出错误到控制台时,我会得到类似的内容:

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

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

回复的内容类型为 text / plain

1 个答案:

答案 0 :(得分:1)

卫生署。

根据Dojo文档的 handleAs 参数:

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

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