色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php cors post

江奕云1年前8瀏覽0評論
最近我在開發一個網站,需要前端通過ajax調用后端php的api接口。但是發現后端返回的數據是null,經過調查發現是因為PHP沒有正確實現CORS規范,導致前端的POST請求被拒絕了。 CORS(Cross-origin resource sharing)是一個瀏覽器的安全策略,它限制了客戶端跨域請求資源的能力。簡單來說,如果前端代碼從一個域名(比如example.com)請求api接口,而這個接口在另一個域名(比如api.example.org)上,那么瀏覽器會發出跨域請求,遵循CORS規范。這個規范要求服務器在響應請求時,設置一些響應頭,告訴瀏覽器可以接受哪些跨域請求。 以POST方法為例,在PHP中可以使用以下代碼實現CORS: ```php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: POST'); header('Access-Control-Allow-Headers: Content-Type'); ``` 其中,Access-Control-Allow-Origin指定了瀏覽器允許的源(域名),這里的*表示所有源都可以;Access-Control-Allow-Methods指定了允許的HTTP方法;Access-Control-Allow-Headers指定了允許的請求頭。需要注意的是,這些響應頭需要在API接口的php文件中添加,而不是在HTML頁面中。 為了更好地理解這個過程,我們可以舉一個例子。假設我們有一個前端頁面,它的URL是http://example.com/index.html,我們需要發送POST請求到http://api.example.org/api.php,并且在請求頭中帶有Content-Type: application/json和Authorization:Bearer xxx。 前端的代碼可以寫成這樣: ```javascript fetch('http://api.example.org/api.php', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer xxx' }, body: JSON.stringify(data) }).then(res =>res.json()) .then(json =>console.log(json)) .catch(err =>console.error(err)); ``` 而在api.php文件中,我們需要添加以下代碼: ```php header('Access-Control-Allow-Origin: http://example.com'); header('Access-Control-Allow-Methods: POST'); header('Access-Control-Allow-Headers: Content-Type, Authorization'); ``` 這樣就可以在服務端支持CORS規范,讓瀏覽器正常地發送跨域POST請求了。 當然,上面的例子只介紹了POST請求中的CORS規范。如果你需要支持其他HTTP方法(比如GET、PUT、DELETE),需要在響應頭中設置Access-Control-Allow-Methods的值為相應的方法名稱。 綜上,PHP中實現CORS規范是一個非常簡單的過程,只需要在API接口的php文件中設置一些響應頭即可。如果你的前端代碼需要跨域請求API接口,務必注意添加這些響應頭,否則瀏覽器會拒絕發送跨域請求,導致API請求失敗。