数据类型的jquery ajax帖子:'JSON'适用于Android但在iPhone4上失败

时间:2011-06-07 20:36:22

标签: jquery iphone ajax json cordova

我正在构建一个与我设置的Web服务接口的phonegap应用程序。有一个我无法解释的奇怪问题。相同的确切代码在Android上正常运行但在iPhone上失败。这只是jQuery。

以下是代码:

$.ajax({
    url: app_domain + '/sessions',
    type: 'POST',
    dataType: 'json',
    data: {
        session: {
            email: u_email,
            password: u_password 
        },
        mobile: '1' },
    async: true,
    cache: false,
    success: function(data){

        // do cool stuff here

    },
    error: function(){

        // complain here                

    }
})

这是我无法弄清楚的部分。当我查看我的服务器日志以尝试找出这个POST请求出了什么问题时,我看到以下内容为android:

...
Processing by SessionsController#create as JSON
...[SUCCESS]

和iPhone请求:

...
Processing by SessionsController#create as HTML
...[FAIL]

对于源自Android设备的POST而言,JSON(正确)的区别是来自iPhone4的POST(不正确)。

是什么给出的?有任何想法吗?谢谢!

P.S。这最初是作为jquery $ .post()函数编写的,它有相同的结果。为了增加特异性,我把它重写为$ .ajax()......

1 个答案:

答案 0 :(得分:2)

您可能需要修改传出的HTTP标头以指示您实际上是在发送JSON。将标题添加到ajax地图:

headers: {'Content-Type': 'application/json'}