zoukankan      html  css  js  c++  java
  • 跨域使用JSONP

    文章目录:

        跨域-知识

        跨域-使用JSONP

        跨域-使用js文件

        跨域-使用window.name

        跨域-使用Proxy page或Cross Frame      


        此为单向跨域。实现方法是域A向域B请求数据,域B生成JSONP的数据给A。我们使用Jquery实现通信。

        实现步骤:

        1、域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>

        2、域B主要是生成Jsonp,所以只有后台代码。

    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();
                
                
            }
        }
    }

        调用结果: 

    参考文章:http://www.cnblogs.com/hb_cattle/archive/2011/10/27/1713659.html

  • 相关阅读:
    SED&AWK
    load average[zhuan]
    To be learned
    Android计时器 android.widget.Chronometer
    Play初识
    获取视图的宽高
    自定义摄像机
    Android VideoView使用小记
    在android中,如何去掉webview读取网页后点击网页上的按钮出现的方框
    阿里云主机试用之自建站点和ftp上传所遇的2个问题
  • 原文地址:https://www.cnblogs.com/scottckt/p/2246557.html
Copyright © 2011-2022 走看看