2014-12-03 133 views
0

我正在通过使用jQuery ajax向PHP控制器发出AJAX请求,但是当试图使用PHP获取发布的数据时,$ _POST为空。以下是实际功能:AJAX post在服务器端为空(PHP)

function GetSeriesForManufacturer(manuf) { 
    selectedmanufacturer = manuf; 
    //Make an AJax Call For Getting Series Of Manufacturer 
    var series = null; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     data: "{manufacturer:'" + selectedmanufacturer + "'}", 
     contentType: "application/json", //; charset=utf-8", 
     dataType: "json", 
     cache: false, 
     async: false, 
     success: function (response) { 
      //remove loading gif 
      $(".loading").hide(); 
      //Append Data 
      AppendSeries($.parseJSON(response.text), selectedmanufacturer); 
      //Custom Scrollbar Call 
      $('.MatchingSeries ul').mCustomScrollbar();       
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { } 
    });       
} 

在此先感谢!

+3

凡定义'url'? – CD001 2014-12-03 13:18:02

+0

谢谢你的回答,我刚刚用“url”取代了实际的url,帖子正常发生,正如我在firebug控制台中看到的。 – Panos 2014-12-03 13:19:17

+4

问题可能出在这一行上:'data:“{manufacturer:'”+ selectedmanufacturer +“'}”,'。字符串或对象,而不是具有对象的JS表示的字符串。尝试'数据:{制造商:selectedmanufacturer},'而不是。 – 2014-12-03 13:20:17

回答

1

首先,你不需要字符串化数据。只需发送对象文字即可。

data: {manufacturer: selectedmanufacturer}, 

其次,你不需要这行:

contentType: "application/json", 
+0

我很确定这会解决它...(只是打败了我) - 将代码扔在本地开发盒上,并摆脱了'contentType'行解决了我的版本问题。 – CD001 2014-12-03 13:49:53

+0

@Leo Deng我尝试删除contentType:“application/json”,因为它在我发布之前在类似的线程中建议,但没有任何更改。但将这些与数据修改结合起来似乎有效,我会在一分钟内接受答案。谢谢,以及在这篇文章中回复的所有人。 – Panos 2014-12-03 13:54:04

+0

@Panos这是个诡计。一次我也尝试在发送数据之前对对象进行字符串化,并最终发现jQuery正在处理它。 – Leo 2014-12-03 14:05:27

0

让jQuery的做编码为您提供:

$.ajax({ 
    type: "POST", 
    url: url, 
    data: { 
     manufacturer: selectedmanufacturer 
    }, 
    contentType: "application/json", //; charset=utf-8", 
    dataType: "json", 
    cache: false, 
    async: false, 
    success: function (response) { 
     ... 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { }}); 
+0

不幸的是,它似乎没有改变任何东西。但是,无论如何谢谢你! – Panos 2014-12-03 13:38:07