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来控制访问资源的权限.