如何使用Android浏览器的AJAX调用指定内容类型?

时间:2010-11-06 21:55:50

标签: javascript android ajax json

我有一个调用我的rails服务器的ajax调用。根据内容类型,我的rails服务器可以使用HTML或JSON进行响应。这在iPhone浏览器和Chrome等桌面浏览器上运行良好。但是在Android浏览器上某种程度上我的服务器无法识别内容类型。我认为overrideMimeType不起作用!

有人知道解决方法吗?如果我无法理解,我只需要创建一个特殊的URL来处理JSON请求。

代码看起来像这样:

function makeAjaxCall {
    xmlhttp=new XMLHttpRequest();
    targetUrl = window.location.pathname;
    xmlhttp.open('GET',targetUrl,true);     
    xmlhttp.overrideMimeType("application/json");
    xmlhttp.onreadystatechange=function()
    {

      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
              // On android browsers only this responds with HTML when it should be JSON
        alert('response:' + xmlhttp.responseText);
        r = eval('(' + xmlhttp.responseText + ')');
                    // Do more stuff
      }
    }
    xmlhttp.send();
}

1 个答案:

答案 0 :(得分:1)

也许你需要

xmlhttp.setHeader("Content-Type", "application/json");

以及?