ajax跨域请求

使用jsonp解决ajax跨域请求

前端ajax请求

$.ajax({
type: "get",
url: "http://localhost:9524/Home/ProcessCallback", // 这个就是不同于当前域的一个URL地址,这里单纯演示,所以同域
dataType: "jsonp",
jsonp: "jsonpcallback", // 指定回调函数,名字随便,但是必须与下面的GET参数一致
data: "name=fcw&sex=boy&jsonpcallback=?", // jsonpcallback与上面的jsonp值一致
success: function (json) {
alert(json.Name+jsonp.Sex);
}
});


后台Controller

[HttpPost]

public string ProcessCallback(string name, string sex)
{
string jsonpCallback = Request.QueryString["jsonpcallback"];
var user = new User
{
Name = name,
Sex= sex
};
return jsonpCallback + "(" + new JavaScriptSerializer().Serialize(user) + ")";
}


ContentType

contentType是post方式发送数据的前提,默认为application/x-www-form-urlencoded

当contentType为application/json时,传输给后台的数据必须为json格式的,否则会引起500错误 ,即data:“{‘data’:'+this.data+'}”

当contenType为默认时,表示为默认发送格式,即data:{data:this.data}

contentType为发送数据的格式,dataType为响应数据的格式,html/xml/json三种

data序列化为json/xml

json: res=Dictionary<string, string>
           string postdata= JsonConvert.SerializeObject(res);
xml:    dic = new Dictionary<string, string>
            var sb = new StringBuilder();
            sb.Append("<xml>");
                foreach (var d in dic)
                {
                    sb.Append("<" + d.Key + ">" + d.Value + "</" + d.Key +  ">");
                }
                sb.Append("</xml>");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值