0

当我尝试使用 jQuery 发出 http POST 请求时,我只在较旧的 android 浏览器中看到一个问题。我得到的回应是——

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <application xmlns="http://wadl.dev.java.net/2009/02">
    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.12 02/15/2012 05:30 PM"/>
    <grammars>
      <include href="http://myURL">
        <doc xml:lang="en" title="Generated"/> 
      </include>
    </grammars>
    <resources base="http://myURL2">
      <resource path="register"/> 
    </resources>
  </application> 
{"myID":"abcd"}

这在最后的 json 内容前面有一个 xml 标头。

在其他浏览器(甚至是 android 4.0 操作系统)上,我得到了预期的内容——

{"myID":"abcd"}

我提出如下要求——

$.ajax({
    type: type,
    contentType: contentType,
    dataType: 'json',
    url: url,
    data: postData,
    success: function(data){
        $.isFunction(successCb) && successCb(data); 
    },  
    error: function(data1){  
        $.isFunction(failureCb) && failureCb(data1);  
    }  
});

知道问题可能是什么吗?

4

1 回答 1

0

http://jsfiddle.net/RF23z/1/

http://fiddle.jshell.net/RF23z/1/show/

在我的 android 2.2 和 4.0.4 上对此进行了测试,对我来说效果很好。

你能确保来自服务器的响应发送一个 json 标头吗?

于 2012-06-26T19:44:46.653 回答