当前位置: 首页 > 知识库问答 >
问题:

Apache 和标头的存在以响应 Ajax 请求

卫嘉佑
2023-03-14

我试图找出一个跨领域的API问题。我有一个用Sencha Touch 2.3.1创建的应用程序,它使用Ajax从远程服务器获取数据。我面临的问题是,所有针对本地服务器的Ajax请求在响应中并不包含所有的头。在远程服务器上,一切正常,标题也正常。

以下是两个打印件,显示了每个服务器单独发送和接收的标头

1 -从本地主机发送和接收的头(http://local.api - vhost)

收到的邮件头:

Connection      Keep-Alive
Content-Length  274
Content-Type    text/html; charset=iso-8859-1
Date            Mon, 07 Jul 2014 10:58:54 GMT
Keep-Alive      timeout=5, max=100
Location        http://local.api/fa/?ref.agent/lista-clienti&_dc=1404730734262
Server          Apache/2.2.17 (Win32) PHP/5.3.3

发送的邮件头:

Accept          text/html,application/xhtml+xml,
                application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language ro-ro,ro;q=0.8,en-us;q=0.6,en-gb;q=0.4,en;q=0.2
Content-Length  33
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
Host            local.api
Origin          http://sencha.local
Referer         http://sencha.local/fisa-agenti/index.html
User-Agent      Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 
                Firefox/30.0

2-从远程服务器发送和接收的标头(http://adgarage.ro)

收到的邮件头

Accept-Ranges                   bytes
Access-Control-Allow-Cred...    true
Access-Control-Allow-Orig...    *
Age                             0
Connection                      keep-alive
Content-Length                  375
Content-Type                    application/json
Date                            Mon, 07 Jul 2014 10:58:52 GMT
Server                          Apache/2.2.22 (Unix) mod_ssl/2.2.22 
                                OpenSSL/0.9.8e-fips-rhel5
Via                             1.1 varnish
X-Powered-By                    PHP/5.3.13
X-Varnish                       562862498

发送的邮件头

Accept          text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language ro-ro,ro;q=0.8,en-us;q=0.6,en-gb;q=0.4,en;q=0.2
Host            adgarage.ro
Origin          http://sencha.local
Referer         http://sencha.local/fisa-agenti/index.html
User-Agent      Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 
                Firefox/30.0

记下访问控制允许标头。从本地主机接收的标头容器中缺少它

这是我的。htaccess文件:

Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Credentials: true 

此文件在两台服务器上是相同的。我在本地机器上有headers_module

我注意到的另一件事是,来自本地的响应状态是 301 永久移动,而从远程服务器收到的响应状态是 200 Ok

我错过了什么?

谢谢!

共有1个答案

西门磊
2023-03-14

我已经确定了问题。如本文所述,由于301永久移动状态,因此未发送本主题标题。

我的本地请求是向http://local.api/fa?ref.agent/...而不是http://local.api/fa/?ref.agent/...-注意第一个链接中/fa后面的斜杠不见了。

现在一切都好了。

 类似资料:
  • 主要内容:1 HTTP Request Header请求头,2 HTTP Response Header 响应头本文列出了日常开发中常见的请求头和响应头,以供大家参考。 1 HTTP Request Header请求头 Header 说明 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html  Accept-Charset 浏览器可以接受的字符编码集。 Accept-Charset: iso-8859-5  Accept-Encoding

  • 问题内容: 有什么方法可以使用PHP获取cURL请求的标头和正文?我发现这个选项: 将返回 正文和标头 ,但随后我需要对其进行解析以获取正文。有什么方法可以使两者更实用(和更安全)? 请注意,对于“单个请求”,我的意思是避免在GET / POST之前发出HEAD请求。 问题答案: 一种解决方案发布在PHP文档注释中:http : //www.php.net/manual/en/function.c

  • 问题内容: 如何检索请求的响应标头?以下是我提出的要求。 提前致谢! 问题答案: 如果响应为类型,则可以从获取标头。 因此,当您使用Alamofire responseJSON时,可以像这样访问NSHTTPURLResponse属性: 正如苹果文件所说: 包含所有HTTP标头字段的字典,该字段作为服务器响应的一部分收到。通过检查此词典,客户端可以看到HTTP服务器返回的“原始”标头信息。 该词典中

  • 我使用Java和Apache CXF为AngularJS(单页web站点)编写后端。在REST服务中,我需要访问http请求的头(即参数和cookies),也需要访问响应头(即参数和cookies)。其主要原因是安全性、身份验证目的和会话管理。这些都是重要的原因。

  • 我们看到一些行为,我们没有在OkHttp中缓存响应,最终每次都访问服务器。但是,响应在将来会有一个过期时间,所以理想情况下它将被缓存。 从我对CacheStrategy的观察来看,问题是它将日期+年龄加在一起,以查看它是否超过了过期时间。在本例中,,因此它最终不会被添加到缓存中。 因此,我认为理想情况下,要么响应日期等于last-modified(在本例中,时间为2021年1月16日00:40:3