我正在使用Ionic 3和自己的REST Api,使用Slim Framework完全訪問服務器。CORS在POST圖像時出錯
每個API調用(GET,POST,PUT和DELETE)儘管這樣的:
let formData = new FormData();
formData.append("file",image);
return this.httpClient.post("https://myurl.com/api/v1/image,formData)
的IMAGEURL是我的服務器API和形象是我從科爾多瓦相機插件獲取路徑。
這是我的服務器錯誤:
[Error] Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
[Error] Failed to load resource: Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
[Error] XMLHttpRequest cannot load https://hobbyrea.com/api/v1/user/image due to access control checks.
這是我的服務器端頭的樣子:
$app->options('/{routes:.+}', function ($request, $response, $args) {
return $response;
});
$app->add(function ($req, $res, $next) {
$response = $next($req, $res);
return $response
->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
});
任何人都可以給我一個建議,爲什麼我得到的錯誤與此API調用?
編輯:
我從iPhone訪問API。編輯2: 我使用cordova文件傳輸插件。請記住在PHP設置中升級upload_max_filesize。它會爲您節省很多頭痛:D
我認爲與您的離子。你有配置代理嗎?像這樣.. https://stackoverflow.com/a/38359981/2249037 – Sh4m
這個請求來自哪裏:http:// localhost:8080 – Henry
嘗試Mozilla Firefox它可能不會引發此問題 – Edison