我将CORS设置为允许少量自定义标头。以下是响应标题 -
响应标题{“日期”:“星期一,2016年3月14日10:11:59 GMT”,
“Server”:“Apache-Coyote / 1.1”,“Transfer-Encoding”:“chunked”,
“Access-Control-Max-Age”:“3600”,“访问控制允许 - 方法”: “POST,GET,OPTIONS,DELETE,PUT”,“Content-Type”: “application / json”,“Access-Control-Allow-Origin”: “*”,
“Access-Control-Allow-Credentials”:“true”,
“Access-Control-Allow-Headers”:“X-Requested-With,Authorization, Content-Type,Authorization_Code,User_Credentials, Client_Credentials“}
上面的响应标头应该表示可以使用以下标头从所有来源使用API:Authorization, Content-Type, Authorization_Code, User_Credentials, Client_Credentials
我可以传递所有标头并使用来自所有来源的API。
问题 -
不允许使用授权API的请求。授权是一个标头,用于传递Oauth令牌,如{ - 1}}(承载令牌)。
corsclient.js:609选项http://54.200.113.97:8080/supafit-api/users sendRequest @ corsclient.js:609(匿名函数)@ corsclient.js:647b.event.dispatch @jquery-1.9.1.min.js:3v.handle @ 的jquery-1.9.1.min.js:3 /客户端#client_method = GET&安培; client_credentials =假安培; client_headers = Authoriz ... nable =真安培; server_status = 200安培; server_credentials =假安培; server_tabs =远程:1 XMLHttpRequest无法加载 http://54.200.113.97:8080/supafit-api/users。对预检的反应 请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。原因'http://client.cors-api.appspot.com'因此不是 允许访问。响应的HTTP状态代码为401。
修改
以下是该API的Rest Client测试 -
响应标题 -
Authorizatio = Bearer ct45tg4g3rf3rfr5freg34gerfgr3gf
JSON响应正文 -
{“id”:78,“userId”:“3465434567”,“coachId”:null,
“name”:“XDCDSC”,“dob”:null,“email”:“puneetpandey37@gmail.com”, “IMAGEURL”: “https://lh5.googleusercontent.com/-TcTQeitAvag/AAAAAAAAAAI/AAA/4pamurzO1a4/photo.jpg”, “gender”:null,“userPhysic”:null,“userTypeId”:1,
“dietitanId”:null,“alternateEmailId”:null,
“yearsOfExperience”:null,“lastExperience”:null,
“languagesKnown”:null,“aboutYourself”:null,
“coreCompetence”:null,“fieldOfWork”:null,“userAddresses”:[
{
“ID”:1, “用户id”:78, “locationId”:1, “地址”: “EC”, “地标”:“近BN”, “phoneNumber的”:空, “地址类型”:“家” }],“phoneNumbers”:[]}
答案 0 :(得分:1)
响应的HTTP状态代码为401。
您的服务器需要Preflight Request的身份验证,但客户端会删除凭据,CORS specification说:
否则,请执行预检请求。使用引用来源作为覆盖引荐来源并使用手动重定向标记和块cookie标记集来从 origin 源来源获取请求URL ,使用方法
OPTIONS
,并使用以下附加约束:在请求方法中包含一个
Access-Control-Request-Method
标头作为标题字段值(即使这是一个简单的方法)。如果作者请求标题不为空,则包含带有标题字段值的
Access-Control-Request-Headers
标题,以字典顺序排列作者请求标题中的标题字段名称的逗号分隔列表,每个标题都转换为ASCII小写(即使是一个或更多是一个简单的标题)。
排除作者请求标题。
排除用户凭据。
排除请求实体正文。
您必须更改服务器,以允许匿名访问预检请求。