Chromeを使用して新しいレスポンシブウェブアプリを試してみると、モバイルでエラーが発生します。私はいくつかの異なる方法でPHPヘッダを追加することから、私のAjaxリクエストでヘッダを渡すことまで、すべてを行ってきました。ウェブ上では、CORSのオン/オフを切り替えることができるChromeの拡張機能であるCORSトグルを使用しました。これは、ウェブ上の問題を解決します。しかし、私はモバイルのためのこのような解決策を見つけるように見えることはできません。とにかくモバイルChromeでCORSをバイパスできますか?CORS Allow-Access-Control-Mobile Chromeでのアクセス
私はこれらの方法をすべて試してみましたし、何も動いていないようにみえ..
PHPオプション1:
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With');
header('Access-Control-Allow-Methods: GET, PUT, POST');
?>
PHPオプション2:
<?php
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header("Access-Control-Allow-Methods: OPTIONS, GET, POST");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
echo "You have CORS!";
?>
jQueryのAJAX:
$.ajax({
url: '<MY API ENDPOINT>',
method: 'POST',
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With",
'Access-Control-Allow-Methods': "GET, PUT, POST",
'Authorization':
'Bearer <MY TOKEN>',
'Cache-Control': 'no-cache'
},
data: formData,
processData: false,
contentType: false
}).done(function(res) {
'Access-Control-Allow- *'ヘッダはクライアントではなくサーバによって設定されるため、ajax呼び出しに追加することは何もしません。そして、自分のサーバー上で_ "MY API ENDPOINT" _ですか?そうでなければ、あなたのPHPのヘッダーを設定するだけで何もしません。 –
私はsalesforces 'api.einstein.ai/v2/vision/predictを使用しています – cal