laravel - Laravel CORS 问题中的 XMLHttpRequest POST
问题描述
我在 Laravel 中遇到了 XMLHttpRequest POST 方法的问题,我尝试应用了几个参考,例如MyNotepaper和这个链接laravel-cors-fruitcakes但仍然没有用。
这是为了访问在线 API 数据并在 localhost 上调用。
这是我的卡住:
Reason: CORS header ‘Access-Control-Allow-Origin’ missing
这是我的代码:
var xhr = new XMLHttpRequest();
var url = 'https://xxx.yyyy.com/api/update';
var params = "server=server&password=12345";
xhr.open('POST', url, true);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader("Accept", "application/json");
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
console.log(xhr.responseText);
}
};
xhr.send(params);
对于 post 方法、URL 链接和与在 Postman 中显示数据的代码中相同的参数的信息,我不知道我忘记了哪一部分。
这是我的路线:
Route::get('/', function () {
return view('welcome');
});
对于中间件设置,我在其 URL 链接参考中进行了尝试。
来自MyNotepaper这是我的中间件设置:
<?PHP
namespace App\Http\Middleware;
use Closure;
class Cors
{
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH,
DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'Accept, Content-Type,
Authorization');
}
}
如果有人知道并且可以帮助我非常高兴和感激所有人
解决方案
将您的中间件放在其他中间件的顶部。
<?php
// file: app/Http/Kernel.php
protected $middleware = [
\App\Http\Middleware\Cors::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
我建议您使用来自barryvdh/laravel-cors
.
推荐阅读
- ios - 如何检索 Cloud Firestore 文档并在 TableView 中显示数据?
- java - 如何删除队列/优先队列 JAVA 中的尾随空格
- c# - 给定一个简单的字典,构建一个嵌套的无序列表
- r - 在 R 中更新用户定义函数中的某些列值
- sql-server - Polybase 无法在 XLSX 目标上放置 WHERE 条件
- json - 在 chrome 扩展中传递 mediaStream
- sas - SAS 中的 VARMAX 建模
- xcode - 如何修复 TabView 中 NavigationView 列表下的灰色条?
- python - 如何从 pandas DataFrame 中提取和求和独特的单词
- java - 如何在DL4J中获取CNN网络卷积层的filters数据来绘制激活图?