1.1、用form表單送出資料來解決跨域問題
用js處理form表單送出,通過動态給form元素指派,來進行設定接口位址。在form标簽上寫入這就代碼 enctype="multipart/form-data" :這句代碼指定form表單送出時的編碼格式為utf-8. 通過用一個隐藏的 iframe标簽,用target="hidden_frame",來解決form表單送出時跳轉頁面的問題。
1.2、post跨域解決方案
(1)、zepto ajax送出 代碼如下
$.ajax({
type: 'post',
url: url,
data:{
'selfsummary':s.one(".form-control").val(),
'merchantcode':'160315133351031001',
},
contenttype:'application/x-www-form-urlencoded;charset=utf-8',
success: function(data){
console.log(json.parse(data));
//this.append(data.project.html)
error: function(xhr, type){
alert('ajax error!')
}
解析:contenttype:'application/x-www-form-urlencoded;charset=utf-8', 這句代碼如果沒有,可以 進行跨域送出,但會出現中文漢字亂碼問題;application/x-www-form-urlencoded 可以進行跨域請 求;charset=utf-8 設定編碼格式,如果沒有則會亂碼。
(2)、kissy post送出
s.io({
type:'post',
"cc":{"sdf":1,"sdf":2},
crossdomain:true,
success:function(responsedata){
console.log(responsedata);
error:function(responsedata){
notification.simple("請求失敗,請稍後再試",'',2000);
});
解析:crossdomain:true, 表示允許跨域;
cors的本質讓伺服器通過新增響應頭access-control-allow-origin,通過http方式來實作資源 共享,讓每個請求的服務直接傳回資源.它使用了http互動方式來确定請求源是否有資格請求該資 源,并且通過設定http header來控制通路資源的權限.