排名
17
文章
40
粉丝
16
评论
21
Linq or Sql 取树末级节点
剑轩 : 这个方法是真的帅!
Python实例 2-12306抢票(二) 下单
18335584353 :
哥。我也是总返回url":"/leftTicket/init","...
Python实例 2-12306抢票(一) 登陆
瑾语 : 第三次评论
Visual Studio小技巧
剑轩 : [斜眼笑][斜眼笑]开会完了认真看了一遍
C#网络流读取(图片)
风清月 : 把一个图片放到字节数组里边[发呆](`・ω・´)
C#与Java二进制编码转换,补码
风清月 : 我勒个擦.....有时间这种问题很坑很难发现哇o(╥﹏╥)o
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

跨域是指浏览器无法执行其他网站的脚本。(域名不同、子域名不同、端口不同、协议不同都属于跨域)
可通过前台后台两种方式解决跨域。前台:Jsonp(请求目标需可控),后台HttpClient。
一、JSONP
jsonp:为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递 一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹JSON数据,这样客户端就可以随 意定制自己的函数来自动处理返回数据了。
实现:
- //请求目标的后台方法
- public string WcfTest(string str)
- {
- if (!string.IsNullOrEmpty(str))
- return "successCallback(1)";
- else
- return "successCallback(0)";
- }
- //发出请求的的ajax
- $.ajax({
- url: 'http://localhost:14063/home/JsonpTest',
- type: "get",
- data: {str:"1"},
- dataType: 'jsonp',
- jsonpCallback: "successCallback",//根据返回的方法来定义,否则会出现返回成功不进入success的方法,只会进error方法
- success: function (data) {
- console.log('success');
- console.log(data);
- },
- error: function (err) {
- console.log('err');
- console.log(err);
- }
- });
注意:
1.jsonp方式发出的请求都会变成get请求。
2.设置jsonpCallback否则会出现无法进入success方法的情况,jsonpCallback课根据返回json方法的来自定义。
二、后台发出请求的方式,使用HttpClient
- public async Task<string> Hps()
- {
- string url = "http://localhost:14063/home/JsonpTest";
- HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.None };
-
- using (HttpClient httpclient = new HttpClient(handler))
- {
- httpclient.BaseAddress = new Uri(url);
- FormUrlEncodedContent content = new FormUrlEncodedContent(new Dictionary<string, string>()
- {
- {"username","1111"},
- {"pwd","1234"},
- }); //参数
-
- Task<HttpResponseMessage> response = httpclient.PostAsync(url, content);
- string responseString = await response.Result.Content.ReadAsStringAsync();
- return responseString;
-
- }
- }
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价