我了解到您可以在PHP脚本中添加以下内容以允许跨源请求:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
通常我会将此添加到我的.htaccess
文件中,但是当我在没有Apache的情况下测试Ajax时,上述内容非常方便。当使用php -S
进行测试时,它确实有效。
我原以为时机错了。在脚本运行之前,是否应该接受CORS请求?如果是这样,PHP将如何有机会决定是否添加这些标题?
答案 0 :(得分:0)
CORS检查由客户端在收到响应时实现。如果客户端和服务器不在同一个域中,则客户端会检查响应,以查看它是否包含适合请求的Access-Control-Allow-XXX
标头。如果没有,它会忽略响应并报告错误。
因此,没有什么能阻止PHP脚本运行。它可以对请求标头和表单参数执行自己的检查,并决定是否允许该操作。