Javascript 为什么我不能在body部分中获取传递的参数?

Javascript 为什么我不能在body部分中获取传递的参数?,javascript,php,Javascript,Php,这是我的服务器端代码:(我使用Laravel框架) 这里有三种要求: #1: 返回[] #2: 返回{“手机”:“任意”、“密码”:“任意”} #3: 好的,正如您所看到的,在postman(请求模拟器)中,当您在body部分中传递参数(而不是作为url中的查询字符串)时,它会工作。但是为什么它在代码中不起作用呢?(您可以在浏览器的控制台中尝试)。你知道我怎样才能使#1工作吗 编辑:注意邮递员中的标题不同: 我没有使用头作为application/json,也没有使用json格式对正文

这是我的服务器端代码:(我使用Laravel框架)

这里有三种要求:

#1: 返回
[]


#2: 返回
{“手机”:“任意”、“密码”:“任意”}


#3:


好的,正如您所看到的,在postman(请求模拟器)中,当您在
body
部分中传递参数(而不是作为url中的查询字符串)时,它会工作。但是为什么它在代码中不起作用呢?(您可以在浏览器的
控制台中尝试)。你知道我怎样才能使
#1
工作吗


编辑:注意邮递员中的标题不同:


我没有使用头作为application/json,也没有使用json格式对正文进行编码

我使用了curl,得到了json的响应,解码后会给出


stdClass对象([cell\u phone]=>whatever[pass]=>whatever)

您确定POST请求的格式正确吗

我认为您应该使用formdataapi()进行测试


您可以使用这样的外部工具:来测试您的API。

您是否使用Symfony或Laravel,或者您的请求方法是什么样子的?问题在于您的
请求
方法的实现。请检查它支持json格式的哪些类型的请求。解码后,我将其作为stdClass对象获取([cell\u phone]=>which[pass]=>which)
// route
Route::post('get_login_api_token', 'Auth\LoginController@get_login_api_token')->middleware('cors');

public function get_login_api_token(Request $request){
    return $request;
}
fetch('https://back.pronexo.net/get_login_api_token', {
          method: 'POST', // or 'PUT'
          mode: 'no-cors',
          body: JSON.stringify({cell_phone:'whatever', password:'whatever'}),
          headers:{
            'Content-Type': 'application/json',
          },
        }).then(res => console.log('OK'));
fetch('https://back.pronexo.net/get_login_api_token?cell_phone=whatever&password=whatever', {
          method: 'POST', // or 'PUT'
          mode: 'no-cors',
          headers:{
            'Content-Type': 'application/json',
          },
        }).then(res => console.log('OK'));
var data = new FormData
data.append("cellphone", "whatever")
data.append("password", "whatever")

// using XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://back.pronexo.net/get_login_api_token')
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.onreadystatechange = function() {
   if (xhr.readystate = 4 && xhr.status == 200) {
       console.log(xhr.response, xhr.responseText)
   }
}
xhr.send(data)

// using fetch method I don't know how it deals with FormData Objects.
fetch('https://back.pronexo.net/get_login_api_token', {
      method: 'POST', // or 'PUT'
      mode: 'no-cors',
      body: data,
      headers:{
        'Content-Type': 'application/json',
      },
}).then(res => console.log('OK'));