博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JSONP 实现跨域通信
阅读量:5153 次
发布时间:2019-06-13

本文共 1820 字,大约阅读时间需要 6 分钟。

 AJAX由于受到浏览器的限制,不允许跨域通信。如果尝试从不同的域请求数据,会出现安全错误。有时我们为了实现跨域通信,不得不做一个中转页面,这样比较繁琐。是不是就没有办法了呢?有的,我们使用JSONP技术就可以解决这个问题。JSONP 具体实现原理这里就不介绍了。下面介绍下在asp.net 中使用JQuery 实现 跨域通信。首先看下代码(以下代码是位于不同域下的)。

 

 

域 A 前端调用页面:

代码
<%
@ Page Language
=
"
C#
"
 AutoEventWireup
=
"
true
"
 CodeBehind
=
"
Default.aspx.cs
"
 Inherits
=
"
WebApplication1._Default
"
 
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html 
xmlns
="http://www.w3.org/1999/xhtml"
 
>
<
head 
runat
="server"
>
    
<
title
>
无标题页
</
title
>
    
<
script 
src
="./js/jquery.1.3.2.js"
 type
="text/javascript"
></
script
>
    
<
script 
type
="text/javascript"
>
    
function
 getData()
    {
        
var
 url 
=
 
"
http://b.5173.com/Default.aspx
"
;  
        $.ajax({  
                url:url,  
                dataType:
"
jsonp
"
,  
                success: 
function
(json){  
                             alert(json.msg);
                          },  
                error: 
function
(){
                         alert(
"
error
"
);
                         }  
               })  
    }
    
</
script
>
</
head
>
<
body
>
    
<
form 
id
="form1"
 runat
="server"
>
    
<
input 
type
="button"
 value
="跨域调用"
 onclick
="getData();"
/>
    
</
form
>
</
body
>
</
html
>

域 B 后台代码:

代码
using
 System;
using
 System.Data;
using
 System.Configuration;
using
 System.Collections;
using
 System.Web;
using
 System.Web.Security;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Web.UI.WebControls.WebParts;
using
 System.Web.UI.HtmlControls;
namespace
 WebApplication2
{
    
public
 
partial
 
class
 _Default : System.Web.UI.Page
    {
        
protected
 
void
 Page_Load(
object
 sender, EventArgs e)
        {
            Response.Charset 
=
 
"
utf-8
"
;
            Response.ContentType 
=
 
"
text/javascript
"
;
            
            
string
 callback 
=
 Request.QueryString[
"
callback
"
];
            
string
 json 
=
 
"
{'state':'0','msg':'hello world!'}
"
;
            
string
 result 
=
 
string
.Format(
"
{0}({1})
"
,callback,json);
            
            
            Response.Write(result);
            Response.Flush();
            Response.End();
            
            
        }
    }
}

 

调用结果:

 

 

转载于:https://www.cnblogs.com/wichell/archive/2011/10/28/2227630.html

你可能感兴趣的文章
mongodb慢查询记录
查看>>
dapper 多对多查询对象和对象列表
查看>>
MapReduce实现词频统计
查看>>
@ManyToOne和@OneToMany 注解
查看>>
BZOJ 1096: [ZJOI2007]仓库建设(DP+斜率优化)
查看>>
WebMVC架构图
查看>>
Netty实现原理浅析
查看>>
Java 位域
查看>>
iOS之NSURLConnection详解(2)
查看>>
Ruby--IRB
查看>>
hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)
查看>>
201671010130 2016-2017-2 《Java程序设计》第五周学习小结
查看>>
HPU 1476: 括号括号
查看>>
Nancy跨平台开发总结(六)三层架构之Token认证的Rest API
查看>>
51nod 1046 A^B Mod C
查看>>
迭代器
查看>>
JS模拟实现数组的map方法
查看>>
Jmeter启动报错解决方案
查看>>
LPC1768之GPIO
查看>>
使用jQuery获取GridView的数据行的数量
查看>>