可能重复:
Detecting Ajax in PHP and making sure request was from my own website
我有一张上传图片的表单,我正在使用Ajaxform()
$('#uploadformimage').ajaxForm({
beforeSend: function() {
$(".progress").css("display","block");
$("#response").html("");
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
//console.log(percentVal, position, total);
},
complete: function(xhr) {
$(".bar").css("width","100%");
$(".percent").html("100%").delay("8000").parent().slideUp(1000);
$("#response").html(xhr.responseText);
}
});
这是我的javascript代码。我想找出server-side
表单是否由ajax上传?
某些计算机上可能禁用了Javascript,因此我想显示一些不同的数据?
答案 0 :(得分:2)
if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest')
{
// This is an AJAX request
}
答案 1 :(得分:1)
我构建了一个演示,这是结果
Request URL:http://localhost/test.php
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:32
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:localhost
Origin:http://localhost
Referer:http://localhost/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11
X-Requested-With:XMLHttpRequest
答案 2 :(得分:0)
您可以传递选项GET /foo?xhr=1
然后在PHP $_GET['xhr']
答案 3 :(得分:0)
让我们假设没有参与AJAX。
所有Javascript / AJAX都可以实现的目的是让用户体验优于竞争对手。
那么,为什么要关注图片,以便上传它的人。那个人可能没有Javascript,
尽量减少并添加铃声和口哨!
答案 4 :(得分:0)
您可以使用HTML中的<noscript>
标记生成不同的HTML,因此表单可以发布到不同的服务器端脚本或向表单添加隐藏字段。