CORS的簡單跨域實作(PHP + jQuery) 2017-01-10
跨域實作方式就是在header加入Access-Control-Allow-Origin "*"
在php實作上就是加入header
PHP:header("Access-Control-Allow-Origin: *");
$data = array("access" => "Hello World!");
echo json_encode($data);
jQuery:$.ajax({
url:"http://219.85.185.143/m_test/CORS/test.php",
dataType: "json",
success: function (response) {
console.log(response);
alert(response.access);
},
error: function (xhr, status) {}
});
如果要限定網域請在header的改為Access-Control-Allow-Origin "特定網域"
如果是整個資料夾內的檔案都需要CORS跨域時,
可利用.htaccess處理,
首先將httpd.conf內的
#LoadModule headers_module modules/mod_headers.so
註記#拿掉,
然後重啟後,
在需要CORS的資料夾加入.htaccess的檔案,
並將.htaccess加入以下內容,
就可以免除在php加入header("Access-Control-Allow-Origin: *");
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH, DELETE"
Header always set Access-Control-Allow-Headers "X-Accept-Charset,X-Accept,Content-Type"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]]