我想发送一个带对象的get请求.将在服务器上使用对象数据来更新会话数据.但是这个对象似乎没有被正确发送,因为如果我尝试将其发回去打印出来,我只会得到:
" N; "
我可以用这样的jQuery来做它并且它有效:
$.get('/mysite/public/api/updatecart', { 'product': this.product }, data => {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
该对象通过laravel从服务器发送回来,如下所示:
public function updateCart(Request $request){
return serialize($request->product);
Run Code Online (Sandbox Code Playgroud)
同样的事情不适用于axios:
axios.get('/api/updatecart', { 'product': this.product })
.then(response => {
console.log(response.data);
});
Run Code Online (Sandbox Code Playgroud)
我用axios设置了一个默认的baseURL,所以url是不同的.它正确到达api端点,函数返回发送的内容,这显然不是对象.结果我只得到" N ".
我知道有很多关于同样问题的问题,但没有一个解决方案对我有用。
我有一个使用 Lumen 内置 API 的 ReactJS 应用程序。该 API 也被React Native和JQuery AJAX 使用,并且在两者上都可以正常工作。
当我尝试从 ReactJS 发送带有 axios的POST请求时,我在OPTIONS请求中收到 405 Method Not Allowed 错误。
axios 请求是:
const body = { username, password };
axios.post(`{$uri}/payment/api/login`, {body})
.then(res => console.log(res))
.catch(err => console.log('Login: ', err));
Run Code Online (Sandbox Code Playgroud)
起初我认为这是一个 CORS 问题,这会很奇怪,因为我的 API 被托管在 AWS S3 上的静态站点使用,没有任何问题。所以我的 CORS 中间件工作正常。
比我尝试使用 fetchAPI 来调用 API 并且工作正常。我尝试从 axios向虚拟 API https://jsonplaceholder.typicode.com/users发送POST请求,并且工作正常。
编辑
好的,所以我刚刚发现 fetchAPI 以application/x-www-form-urlencoded格式发送数据,该格式不受飞行前请求的影响。这应该意味着 CORS 中间件存在问题。
CORSM中间件
<?php …Run Code Online (Sandbox Code Playgroud) 我正在使用 axios get 方法并将参数传递给 asp.net mvc 控制器。我可以读取单个值。但我试图将所有值作为一个对象一起读取。我没有视图模型,我正在尝试将 params 读取为通用对象。在 c# 控制器中用作参数的 axios params 数据类型是什么?我为 buildurl 创建了一个单独的方法并验证每个参数,但是有没有任何选项可以一次验证所有参数?
这有效
反应代码
export const GetRequestCall = () => {
const getUrl = 'baseurl';
return new Promise((resolve, reject) => {
axios.get(getUrl, {
params: {
param1: 'abc',
param2: 'efg'
}
})
.then(response => {
}).catch(error => reject(error));
});
};
Run Code Online (Sandbox Code Playgroud)
C# 控制器代码
//Read parameter as individual strings
[HttpGet("[action]")]
public async Task<string> GET(string param1, string param2)
{
try
{
var url = BuildUri( param1, param2);
}
}
Run Code Online (Sandbox Code Playgroud)
这没有用 …