最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

如何解决JavaScript跨域问题

来源:动视网 责编:小OO 时间:2025-09-30 20:59:18
文档

如何解决JavaScript跨域问题

如何解决JavaScript跨域问题首先是JQUERY的JSONP方法:假设有一个静态页面上的某些功能需要通过判断IP来授权访问,而这个网站是静态的没办法自己实现判断IP功能,这时候就可以用跨域来解决代码如下:viewsourceprint?1varCheckUrl=function(){viewsourceprint?1$.getJSON('http://www.xxx.com/Urlcheck/Url/CheckUrl?callback=?',viewsourceprint?1functi
推荐度:
导读如何解决JavaScript跨域问题首先是JQUERY的JSONP方法:假设有一个静态页面上的某些功能需要通过判断IP来授权访问,而这个网站是静态的没办法自己实现判断IP功能,这时候就可以用跨域来解决代码如下:viewsourceprint?1varCheckUrl=function(){viewsourceprint?1$.getJSON('http://www.xxx.com/Urlcheck/Url/CheckUrl?callback=?',viewsourceprint?1functi
如何解决JavaScript跨域问题 

  首先是JQUERY的JSONP方法:

  假设有一个静态页面上的某些功能需要通过判断IP来授权访问,而这个网站是静态的没办法自己实现判断IP功能,这时候就可以用跨域来解决代码如下:

view sourceprint?

1 var CheckUrl=function(){ 

view sourceprint?

1 $.getJSON('http://www.xxx.com/Urlcheck/Url/CheckUrl?callback=?', 

view sourceprint?

1 function(json){ 

view sourceprint?

1 if(json.Status==1){ 

view sourceprint?

1 window.open(json.Url); 

view sourceprint?

1 }else{ 

view sourceprint?

1 alert(json.Message); 

view sourceprint?

1   

view sourceprint?

1 } 

view sourceprint?

1   

view sourceprint?

1 } 

  这个函数功能是用户点击某个链接,调用CheckUrl()用JQUERY的getJSON方法来访问http://www.xxx.com/Urlcheck/Url/CheckUrl,callback=?是一个与后台返回地址约定好的一个函数名称,接着往后看就明白了。

  监视一下这个JSONP方法执行时候访问的地址就会看到是这样的

http://www.xxx.com/Urlcheck/Url/CheckUrl?callback=jsonp1295517950805&_=12955179630

请注意callback=jsonp1295517950805 这个参数是jquery自动添加的,在写的时候写的只是http://www.xxx.com/Urlcheck/Url/CheckUrl?callback=?,

后台接收页面:

view sourceprint?

01 public ActionResult CheckUrl() 

02 { 

03     //获取发出请求的远程主机的IP地址 

04     string ip=GetUserIp(); 

05     //具体业务判断得到返回的对象 

06     ReStr rstr=UrlDecide.CheckUrl(ip); 

07     //组页面所需的json串 

08     string jsonStr = "{\\"Status\\": \\"" + rstr.Status + "\\",\\"Message\\": \\"" + rstr.Message + "\\",\\"Url\\": \\"" + rstr.Url + "\\"}";  

09     //得到最终返回的文本 

10     string parStr = Request.QueryString["callback"].ToString(); 

11     //将文本以JavaScript的方式返回 

12     JavaScriptResult javaStr = JavaScript(parStr + "(" + jsonStr + ")"); 

13     return javaStr; 

14 } 

   要注意的一点就是返回内容的Content-Type,必须为text/javascript或者 application/javascript,这里MVC的ActionResult 比较方便的提供了JavaScript()方法,webform方式的话指定一下Response.ContentType属性也可以。

看看返回的数据

view sourceprint?

1 jsonp1295517950805({"Status": "1可以访问

JavaScript方法:

    上面JQUERY的方法特别简单好用,可能用了但是不知道是怎么实现的,看完以下实现就明白JSONP的实现方式了

view sourceprint?

01 var CheckUrl=function(){  

02   

03     var s=document.createElement('SCRIPT'); 

04     s.src='http://www.xxx.com/Urlcheck/Url/CheckUrl?' + Math.random(); 

05     $("#script").append(s); 

06 }  

07 function L(json) 

08 { 

09     try{ 

10    &

文章来源:java视频  http://www.leadfar.org/

文档

如何解决JavaScript跨域问题

如何解决JavaScript跨域问题首先是JQUERY的JSONP方法:假设有一个静态页面上的某些功能需要通过判断IP来授权访问,而这个网站是静态的没办法自己实现判断IP功能,这时候就可以用跨域来解决代码如下:viewsourceprint?1varCheckUrl=function(){viewsourceprint?1$.getJSON('http://www.xxx.com/Urlcheck/Url/CheckUrl?callback=?',viewsourceprint?1functi
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top