2014-01-23 70 views
0

我有没有工作一个令人难以置信的简单的Ajax后:简单的Ajax后不工作

<html> 
<body> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script> 

      var deviceDetails = []; 

      deviceDetails.project_title = 'project'; 
      //deviceDetails.platform = window.device.platform; 
      deviceDetails.platform = 'ios'; 

      $.ajax({ 
       url: "http://someserver.com/device_api", 
       type: "post", 
       data: deviceDetails, 
       success: function(){ 
        alert("success"); 

       }, 
       error: function(model, xhr, options){ 
        alert('failed'); 

        console.log('response is : '); 
        console.log(xhr.responseText); 
       }, 
      }); 

</script> 

</body> 
</html> 

服务器只是做到这一点:

我可以在Chrome中的网络选项卡上看到邮政的地位被“取消”。我错过了什么?

+0

您是否收到任何错误? –

+0

是否发送选项请求? – Quentin

+0

我[试过你的代码](http://jsfiddle.net/75vYt/),可以看到POST请求**被**发送。 – Quentin

回答

0

最有可能的是你受到ajax请求的same origin policy的困扰。从由于浏览器的安全限制的文档$.ajax

,大多数“Ajax”的请求都受到同源策略;该请求无法成功从不同的域,子域或协议中检索数据。

+0

这不仅仅适用于GET请求,而且不适用于POST? – user1716672

+0

它不是特定于方法的。我建议你尝试一个ajax请求到你自己的服务器。如果有效,这是问题。如果这也没有一个不同的 – Jamiec

-2
<script> 
$(document).ready(function(){ 
      var deviceDetails = []; 

      deviceDetails.project_title = 'project'; 
      //deviceDetails.platform = window.device.platform; 
      deviceDetails.platform = 'ios'; 

      var deviceDetailsObject = JSON.stringify(deviceDetails); 

      $.ajax({ 
       url: "http://push.schoolspace.ie/device_api", 
       type: "post", 
       data: deviceDetailsObject, 
       success: function(){ 
        alert("success"); 

       }, 
       error: function(model, xhr, options){ 
        alert('failed'); 

        console.log('response is : '); 
        console.log(xhr.responseText); 
       }, 
      }); 
}) 
</script> 

您需要将数组转换成JSON对象/字符串(http://api.jquery.com/jquery.post/)。 JSON.stringify()函数为你做到这一点。

+0

这没有奏效 – user1716672

2

正在发送POST请求,但它没有打到我的记录器在服务器上。我改变了网址为:

url: "http://push.schoolspace.ie/device_api/" 

用“/”结尾,这工作。我认为这与服务器上的.htaccess文件有关。