【发布时间】:2016-02-12 17:58:46
【问题描述】:
我的 PHP 页面脚本响应 403-访问禁止某些 http 请求而某些请求正确响应。
对于以下请求(通过 ajax),我得到 403-Access 被禁止
POST http://xxxx./xxx/xxx/xxx/xxxx/interaction/practitioner HTTP/1.1
Host: xxxx
Connection: keep-alive
Content-Length: 2520
Accept: */*
Origin: http://xxx
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.267 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://xxxx./xxx/xxx/xxx/xxxx/index.php
X-Citrio-Timestamp: Wht/CLSj01IhGLSPNfWemGXwGww= 2016-02-12T17:41:39.961Z
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: PHPSESSID=c83cae9c3bc88a4b8ff7ea3c3b279a22
{JSON DATA}
但是,对同一页面的另一个请求使用不同的 JSON DATA 正确响应。
意味着,对于特定数据,它禁止 403 访问,而对于某些数据,它正确响应。
php 脚本包含 10-20 个函数,但是,两个请求都调用同一个函数.. {Register user with timetable ids.}
【问题讨论】:
-
能否请您出示相关的服务器代码?通常当服务器响应 403 时,这是因为服务器被编码为响应 403。
-
您的请求是否从/发送到同一个域/子域?也许你需要使用 CORS 请求。
-
是的...在两个请求中都请求相同的文件。只有 JSON 数据不同。两个请求都调用相同的方法......唯一的区别是第二个请求(403-Forbidden)包含一些额外的数据而不是之前的请求(工作正常)。实际上它是一个客户端应用程序并且在交付时工作正常......但现在 2 个月后出现了这个问题......
-
你能测试吗?只需在您的服务器端脚本上添加
header('Access-Control-Allow-Origin: *');,如果它可以工作,可能意味着您必须从另一个域或子域访问脚本。希望它有所帮助,但也许我错了
标签: javascript php json ajax