十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
GET在浏览器回退时是无害的,而POST会再次提交请求。
创新互联公司长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为金沙企业提供专业的网站建设、成都做网站,金沙网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制的,而POST么有。
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在Request body中。
jQuery ajax - post() 方法:
1、定义和用法:
post() 方法通过 HTTP POST 请求从服务器载入数据。
2、语法:
jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
url :必需。规定把请求发送到哪个 URL。
data :可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR): 可选。请求成功时执行的回调函数。
dataType :可选。规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)。
POST跨域 解决方案: CORS
给服务端数据处理源码添加Header头。
例如是asp的语法,服务端获取数据使用:
%
Response.AddHeader "Access-Control-Allow-Origin", "*"
response.write("[{'rid':1, 'rname':'001'}, {'rid':2, 'rname': '002'}]")
%
本地ajax:
$.ajax({
url:url,//远程url
async :false,
type:"POST",
success:function(data){
//var a=JSON.parse(data);
var html = "";
alert(data);
},
error:function(){
alert("error");
}
});
$.ajax:基础方法
语法:jQuery.ajax([settings])
.load:载入远程 HTML 文件代码并插入至 DOM 中
语法:load( url, [data], [callback] )
$.get:使用GET方式来进行异步请求
语法:jQuery.get( url, [data], [callback] )
$.post:使用POST方式来进行异步请求
语法:jQuery.post( url, [data], [callback], [type] )
$.getScript:通过 GET 方式请求载入并执行一个 JavaScript 文件
语法:jQuery.getScript( url, [callback] )
jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据
这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。
$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。
注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。
当设置 datatype 类型为 'script' 的时候,所有的远程(不在同一个域中)POST请求都回转换为GET方式。
设置async参数:
(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
$.ajax({
type: "get",
url: "",
beforeSend: function(XMLHttpRequest){
//ShowLoading();
},
success: function(data, textStatus){
$(".ajax.ajaxResult").html("");
$("item",data).each(function(i, domEle){
$(".ajax.ajaxResult").append("li"+$(domEle).children("title").text()+"/li");
});
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
},
error: function(){
//请求出错处理
}
});
POST方法的原型:
$.post(string url,object data,function callback,string datatype);
--------------------------------------------------------------------------------
参数说明:
string url:Ajax提交的服务器地址,必须的
object data:向服务器传递的数据,为JSON格式对象,非必须
function callback:ajax请求后的操作函数,非必须,接受两个参数
callback(data,status),data为服务器返回的数据,status为返回的字符类型的状态
string datatype:返回的数据类型,默认为text
在你的代码中
$.post("gis.php",{img:src})向php页面传递了一个参数,参数名为img,值为变量src的值。
那么在服务器端接受时的参数名应当为img
代码:
------------------------------
?php
$img =trim($_POST['img']);
echo (!empty($img))? '1':'0';
?
如果要接收服务器返回的数据,则你的JS代码为:
var src =$('#ihOppoSrc').val();
$.post('gis.php',{"img":src},function(data,status){
if(status=='success'){//这里返回的success表示请求成功,单不表述你的逻辑处理成功
if(data==1){
alert('服务器处理成功');
}else{
alert('服务器处理失败');
}
}
});