Php 使用ajax发送的数组导致错误400

Php 使用ajax发送的数组导致错误400,php,jquery,ajax,Php,Jquery,Ajax,我想发送一个数组作为数据,但我得到错误的请求 我怎样才能修好它? 它还需要添加其他代码吗 window.csrfTokenName = "{{ craft.config.csrfTokenName|e('js') }}"; window.csrfTokenValue = "{{ craft.request.csrfToken|e('js') }}"; dataString = [ 'Location Zero', 'Location One', 'Location Two' ]; var js

我想发送一个数组作为数据,但我得到错误的请求

我怎样才能修好它?
它还需要添加其他代码吗

window.csrfTokenName = "{{ craft.config.csrfTokenName|e('js') }}";
window.csrfTokenValue = "{{ craft.request.csrfToken|e('js') }}";
dataString = [ 'Location Zero', 'Location One', 'Location Two' ];

var jsonString = JSON.stringify(dataString);
$.ajax({
  type: "POST",
  url: "test",
  data: {
    data: jsonString
  },
  cache: false,
  success: function() {
    alert("OK");
  },
  error: function(e) {
    console.log(e);
  },
  dataType: "json",
  contentType: "application/json"
});

我的第一直觉告诉我,AJAX方法中的URL格式不正确。。“test”是一个包含index.php文件的目录吗

var jsonString=JSON.stringify(dataString)


我的第一直觉告诉我,AJAX方法中的URL格式不正确。。“test”是一个包含index.php文件的目录吗

var jsonString=JSON.stringify(dataString)


如果@silversunhunter的答案不正确,请尝试以这种方式将数组字符串化。按原样发送。代码如下

dataString = [ 'Location Zero', 'Location One', 'Location Two' ];
$.ajax({
  type: "POST",
  url: "test", // Should this be test.php or /test or ../test or somethign?
  data: JSON.stringify({ 'data': dataString }),
  cache: false,
  success: function() {
    alert("OK");
  },
  error: function(e) {
    console.log(e);
  },
  dataType: "json",
  contentType: "application/json"
});

另外,如果@silversunhunter的答案没有尝试以这种方式对数组进行字符串化,请确保您的webmethod需要string[]类型的参数,并将其命名为“data”

。按原样发送。代码如下

dataString = [ 'Location Zero', 'Location One', 'Location Two' ];
$.ajax({
  type: "POST",
  url: "test", // Should this be test.php or /test or ../test or somethign?
  data: JSON.stringify({ 'data': dataString }),
  cache: false,
  success: function() {
    alert("OK");
  },
  error: function(e) {
    console.log(e);
  },
  dataType: "json",
  contentType: "application/json"
});

还要确保webmethod需要string[]类型的参数,并命名为“data”

应添加以下行:

        dataString = [ 'Location Zero', 'Location One', 'Location Two' ];
         var ourObj = {};
         ourObj.data = dataString;
ajax数据将更改为:

       data: {"points" : JSON.stringify(ourObj)},
这个链接很有用!
应添加以下行:

        dataString = [ 'Location Zero', 'Location One', 'Location Two' ];
         var ourObj = {};
         ourObj.data = dataString;
ajax数据将更改为:

       data: {"points" : JSON.stringify(ourObj)},
这个链接很有用!

有数千种原因可能导致400错误。检查服务器上的日志以查找错误消息“为什么要首先字符串化数据字符串?”??数据应该是一个数组。侦听此调用的服务是否需要一个数组?可能会出现400错误的原因有数千种。检查服务器上的日志以查找错误消息“为什么要首先字符串化数据字符串?”??数据应该是pojoi侦听此调用的服务是否需要数组?