我正在构建一个与我设置的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()......
答案 0 :(得分:2)
您可能需要修改传出的HTTP标头以指示您实际上是在发送JSON。将标题添加到ajax地图:
headers: {'Content-Type': 'application/json'}