在整个互联网上,甚至包括在Stack Overflow中,人们声称检查请求是否是AJAX的好方法是执行以下操作:
if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {...}
Run Code Online (Sandbox Code Playgroud)
但是,我没有$_SERVER['HTTP_X_REQUESTED_WITH']在官方PHP文档中看到
当我尝试执行以下操作时:
echo $_SERVER['HTTP_X_REQUESTED_WITH'];
Run Code Online (Sandbox Code Playgroud)
什么都没输出.
难道我做错了什么?因为我真的希望能够使用$_SERVER['HTTP_X_REQUESTED_WITH']它是否可用.
我希望将自定义http标头添加到当前托管在Heroku上的Ruby on Rails应用程序上.
我寻找到一个宁静的设计,想用HTTP方法(POST,GET尽可能多地,...)和HTTP标头.我已经发现了HTTP方法PUT和DELETE不从浏览器的支持.
现在我想要获得相同资源的不同表示,并希望通过更改Accept请求的标头来实现此目的.根据此Accept标头,服务器可以在同一资源上提供不同的视图.
问题是我找不到告诉我的浏览器改变这个标题的方法.
该<a..>标签具有一个类型的属性,可以有一个MIME类型,看起来像一个很好的候选人,但头仍然是浏览器的默认(在Firefox它可以改变在about:config与network.http.accept.default键).
我见过的HTTP报头Content-Language和Accept-Language,可能有人解释这是什么意思了,它们之间的区别?我有一个多语言网站,并想知道我应该由用户设置两个网站当前选定的语言.
我正在编写一个只接受json的Web服务,并且只输出json.
因此,如果请求任何其他格式,我需要返回适当的状态代码.
看来我有两个选择:
如果有人能够启发我关于两个代码的语义,那将是很棒的.
我想在下载之前获取http:/.../文件的大小.该文件可以是网页,图像或媒体文件.可以使用HTTP标头完成吗?如何仅下载文件HTTP标头?
我正在自动化一个Web应用程序(Mantis bug跟踪器),我从中得到一个有趣的响应头,名为Refresh:
HTTP/1.x 200 OK
...
Refresh: 0;url=my_view_page.php
Run Code Online (Sandbox Code Playgroud)
它似乎与元刷新的行为方式相同,元刷新技术暗示它与HTTP中的标头等效.
问题是,我找不到HTTP标准中的Refresh标题或任何其他关于如何解析它以及浏览器在遇到它时应该做什么的权威文档.
这里发生了什么?
在HTTP规范说的有关HEAD要求:
HEAD方法与GET相同,只是服务器不能在响应中返回消息体.响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求时发送的信息相同.
HEAD请求的响应是否应包含Content-Length标题?GET即使没有响应机构,它应该是在请求中返回的值吗?或者Content-Length应该为0?
HTTP和HTTPS标头有什么区别?
我尝试构建一个python脚本,该脚本发送带有用于提取结果的参数的POST.有了提琴手,我已经提取了回复我想要的帖子请求.该网站仅使用https.
POST /Services/GetFromDataBaseVersionned HTTP/1.1
Host: www.mywbsite.fr
"Connection": "keep-alive",
"Content-Length": 129,
"Origin": "https://www.mywbsite.fr",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5",
"Content-Type": "application/json",
"Accept": "*/*",
"Referer": "https://www.mywbsite.fr/data/mult.aspx",
"Accept-Encoding": "gzip,deflate,sdch",
"Accept-Language": "fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4",
"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
"Cookie": "ASP.NET_SessionId=j1r1b2a2v2w245; GSFV=FirstVisit=; GSRef=https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CHgQFjAA&url=https://www.mywbsite.fr/&ei=FZq_T4abNcak0QWZ0vnWCg&usg=AFQjCNHq90dwj5RiEfr1Pw; HelpRotatorCookie=HelpLayerWasSeen=0; NSC_GSPOUGS!TTM=ffffffff09f4f58455e445a4a423660; GS=Site=frfr; __utma=1.219229010.1337956889.1337956889.1337958824.2; __utmb=1.1.10.1337958824; __utmc=1; __utmz=1.1337956889.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)"
{"isLeftColumn":false,"lID":-1,"userIpCountryCode":"FR","version":null,"languageCode":"fr","siteCode":"frfr","Quotation":"eu"}
Run Code Online (Sandbox Code Playgroud)
现在我的python脚本:
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import string
import httplib
import urllib2
host = "www.mywbsite.fr/sport/multiplex.aspx"
params='"isLeftColumn":"false","liveID":"-1","userIpCountryCode":"FR","version":"null","languageCode":"fr","siteCode":"frfr","Quotation":"eu"'
headers = { Host: www.mywbsite.fr,
"Connection": "keep-alive",
"Content-Length": 129,
"Origin": "https://www.mywbsite.fr",
"X-Requested-With": …Run Code Online (Sandbox Code Playgroud)