Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将$.ajax与then()一起使用?_Jquery_Ajax - Fatal编程技术网

Jquery 如何将$.ajax与then()一起使用?

Jquery 如何将$.ajax与then()一起使用?,jquery,ajax,Jquery,Ajax,我使用AJAX向apache/php Web服务器(XAMPP)发送一些数据。 我已经使用速记语法$.post运行了它,代码如下所示: return $.post('http://localhost:8099/login.php', { loginDataInput : loginDataInput }).then((response) => { //response = JSON.parse(response) return response

我使用AJAX向apache/php Web服务器(XAMPP)发送一些数据。 我已经使用速记语法$.post运行了它,代码如下所示:

return $.post('http://localhost:8099/login.php', {
      loginDataInput : loginDataInput
    }).then((response) => {
      //response = JSON.parse(response)
      return response
    })
return $.ajax({
      type:"POST",
      url: 'http://localhost:8099/login.php',
      data: loginDataInput
  }).then((response) => {
    return response
  })
但现在我尝试使用长格式$.ajax,如下所示:

return $.post('http://localhost:8099/login.php', {
      loginDataInput : loginDataInput
    }).then((response) => {
      //response = JSON.parse(response)
      return response
    })
return $.ajax({
      type:"POST",
      url: 'http://localhost:8099/login.php',
      data: loginDataInput
  }).then((response) => {
    return response
  })
而且它似乎不起作用。 我在php端调试了$_POST数组,数据输入本身发生了变化,当我使用$.ajax语法时,点变成了下划线(见下文)。我如何防止这种情况

$\u POST数组在使用$调用AJAX后通过json\u encode进行回显。POST语法:

{"loginDataInput":"{\"loginDataMailInput\":\"gruss@imbus.de\",\"loginDataPasswordInput\":\"test2\"}"}
$\u POST数组在AJAX调用后通过json\u encode以$进行回显。AJAX语法:

{"{\"loginDataMailInput\":\"gruss@imbus_de\",\"loginDataPasswordInput\":\"test2\"}":""}
对于我的$.ajax版本,我使用了jquery文档 这向我展示了$.ajax相当于$.post速记。
我省略了数据类型,因为我想使用智能猜测。也许这就是问题所在?

登录数据输入需要位于对象内部

return $.ajax({
      type:"POST",
      url: 'http://localhost:8099/login.php',
      data: {
        loginDataInput: loginDataInput
      }
  }).then((response) => {
    return response
  })

@t、 niese没问题,但如果是服务器端,为什么会受到我在前端调用AJAX的方式的影响?实际上,如果我使用$.post速记,服务器端的一切看起来都很好!尝试将
数据:LoginDainPut
更改为
数据:{LoginDainPut:LoginDainPut}
,并告诉我们更改的内容您可以将
数据类型:“json”
添加到ajax请求中。@designtocode这与数据类型属性无关。数据类型指定预期的返回值。我将contentType指定为“json”,但由于某种原因,我得到了一个CORS错误,告诉我同源策略不允许读取远程源。如果我使用application/x-www-form-urlencoded、multipart/form数据或text/plain作为contentType,或者将其保留为默认值,则CORS可以工作。这是不正确的<代码>数据可以根据文档接受对象或字符串。所以它不需要在对象内部。@designtocode我想你跳过了内部这个词。这可能不是很好的措辞,但他是对的,如果OP希望在
ajax
中的数据格式与使用
post
的前一版本相同,那么这就是需要做的