原文发布时间为:2011-01-14 —— 来源于本人的百度文章 [由搬家工具导入]

$.get 没有权限? $.post 没有权限? 因为他们都不能跨域,那就用 $.getJSON() 吧

利用$.getJSON() 跨域调用aspxashx和WebServices

ASP.NET2010-12-22 12:17:31阅读11评论0  字号: 订阅

  今天抽点时间对跨域访问进行学习了一下,原理就不介绍了,直接给出例子.      http://h.com   ------->请求http//x.com 域下的文件
  (1) http://h.com域下的文件 WebServices.htm  <!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>    <title>$.getJSON跨域调用WebServics</title>    <script src="../jQuery/jquery-1.4.4.js" type="text/javascript"></script></head><body>    <input type="button" id="btnGetMethod" value="跨域调用方法" />    <br />    <input type="button" id="btnGetServices" value="跨域调用WebServices" /></body></html><script type="text/javascript">$(function(){       var callback=function(){};  //客户端定义好的回调函数

    //(1) 跨域调用页面中的方法

如果使用aspx的话,要把页面上面的HTML那块代码删除。

     $("#btnGetMethod").click(function(){        //(1) 直接使用$.getJSON方法,此种写法回调函数写成http://x.com/Aspx/test.aspx?callback=? 而不是http://x.com/Aspx/test.aspx?callback=callback形式          $.getJSON(             "http://x.com/Aspx/test.aspx?callback=?"     //GetJson是定义好的Web方法             ,{method:"getjsonp",UserName:"Linda",Pwd:"88888888"}             ,function(data){ alert(data.Use+"-->"+data.Password);          });        //(2)使用$.ajax()方法          $.ajax({              url:"http://x.com/Aspx/test.aspx"             ,dataType:"jsonp"             ,jsonp:"callback"             ,data:{method:"getjsonp",UserName:"Linda",Pwd:"987654321"}             ,success:function(data){                  alert(data.Use+"-->"+data.Password);             }          });               });    //(2) 下面是调用WebService    $("#btnGetServices").click(function(){           //(1) 直接使用$.getJSON方法          $.getJSON(             "http://x.com/WebServices/Service.asmx/GetJson?callback=?"     //GetJson是定义好的Web方法             ,{UserName:"Linda",Pwd:"1237777"}             ,function(data){ alert(data.name+"-->"+data.pwd);          });       //(2) 使用$.ajax()方法          $.ajax({             url:"http://x.com/WebServices/Service.asmx/GetJson?",             dataType:"jsonp",             jsonp:"callback",             data:{UserName:"Susan",Pwd:"123456789"},             success:function(data){                  alert(data.name+"-->"+data.pwd);             }          });    });  });</script>(2) http://x.com/Aspx/test.aspx 文件内容,这里只给出后台代码test.aspx.csusing System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace Two.Aspx{    public partial class test : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            var callback = !String.IsNullOrEmpty(Request["callback"]) ? Request["callback"] : "";           var method = !String.IsNullOrEmpty(Request["method"]) ? Request["method"] : "";           var UserName = !String.IsNullOrEmpty(Request["UserName"]) ? Request["UserName"] : "";           var Pwd = !String.IsNullOrEmpty(Request["Pwd"]) ? Request["Pwd"] : "";           if (method != "")           {               var ReturnStr = callback + "(" + getjsonp(UserName, Pwd) + ")";               Response.Write(ReturnStr);               Response.End();           }        }        protected string getjsonp(string User,string Password)        {            return "{Use:'"+User+"',Password:'"+Password+"'}";        }    }}(3)  http://x.com/\WebServices\Service.asmx  页面内容
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Linq;
namespace Two.WebServices{    /// <summary>    /// Service 的摘要说明    /// </summary>    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [ToolboxItem(false)]    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。   [System.Web.Script.Services.ScriptService]    public class Service : System.Web.Services.WebService    {
        [WebMethod]        public string HelloWorld()        {            return "Hello World";        }        [WebMethod]        public void GetJson(string UserName, string Pwd)        {           HttpRequest Request=HttpContext.Current.Request;          var callback =!string.IsNullOrEmpty(Request["callback"])?Request["callback"]:"";          HttpContext.Current.Response.Write(callback + "({name:'Dear" + UserName + "',pwd:'" + Pwd + "'})");          HttpContext.Current.Response.End();        }    }} 注: 如果是跨域请求WebServices的话,要在被请求的文件web.config文件下的<system web> 节点下配置如下内容   <webServices>      <protocols>        <add name="HttpPost"/>        <add name="HttpGet"/>      </protocols>    </webServices>

利用$.getJSON() 跨域请求操作的更多相关文章

  1. 用 jQuery.getJSON() 跨域请求 JSON 数据

    $.getJSON()可以理解为特殊形式的$.ajax(),手册里的说明好复杂,这里只记录一下用到的跨域请求. 先说在同一域名下,js发送数据到php,php返回JSON数据: $.getJSON(' ...

  2. jquery $.getJSON()跨域请求

    以前总是没搞明白是怎么回事,现在是迫不得已,就仔细看了看说明文档,终于测试成功了,记下   1,同一域名下和其他的请求可以是一样的 js: 代码如下: var url="http://loc ...

  3. ajax跨域请求的问题

    使用getJson跨域请求,需要向服务器发送一个参数callback=? $.getJSON("http://appcenter.mobitide.com/admin/appSearch.p ...

  4. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)

    利用Nginx轻松实现浏览器中Ajax的跨域请求(前后端分离开发调试必备神技) 前言 为什么会出现跨域? 造成跨域问题的原因是因为浏览器受到同源策略的限制,也就是说js只能访问和操作自己域下的资源,不 ...

  5. jQuery异步请求(如getJSON)跨域解决方案

    相信大家在使用jQuery异步请求非自己网站内相对资源(通过别人站点上的URL直接读取)使经常会遇到如下错误吧,实际上这些错误都是浏览器安全机制“搞的鬼”,才让我们开发路上遇到了拦路虎. 当你直接在浏 ...

  6. Ajax_05之跨域请求

    1.跨域请求: Cross Domain Request:跨域名的HTTP请求,浏览器从某个域名下的资源访问了另一域名下的另一资源(协议.域名或是端口号不同): ①浏览器允许跨域请求的情形:  < ...

  7. AJAX 跨域请求 - JSONP获取JSON数据

    Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...

  8. jQuery ajax跨域请求的解决方法

    在Ajax应用中,jQuery的Ajax请求是非常容易而且方便的,但是初学者经常会犯一个错误,那就是Ajax请求的url不是本地或者同一个服务器下面的URI,最后导致虽然请求200,但是不会返回任何数 ...

  9. Ajaxadr ajax跨域请求crossdomain

    最近工作需要用到ajax跨域请求参数,网上找很很久,最终得到解决之道.分享一下吧,希望能帮到各位 也许你已经发现在浏览器直接敲路径能获得对方提供接口的参数,而一到项目中Ajax请求却老是失败.原因是, ...

随机推荐

  1. Python_循环判断表达式

    一.if判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. if判断结构: if 条件: 动作 elif 条件: 动作 else: 动作 if判断年龄: age_of_princal ...

  2. shell 流水账

    在shell脚本运行时,会先查找系统环境变量ENV,该变量指定了环境文件(加载顺序通常是/etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc) 设置全局 ...

  3. 无线Web开发

    http://am-team.github.io/amg/dev-exp-doc.html

  4. Tesseract-ocr视觉学习-验证码识别及python import pytesseract使用

    Tesseract-OCR的简单使用与训练 最近看到某个网站提交数据要提交验证码,用tesseract自带的识别, 识别出来是什么鬼,0-9识别成了什么玩意! so决定自己训练下tesseract.. ...

  5. JZOJ 4735. 最小圈

    Description 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过k个节点,那么一个圈的平均值为圈上k条边权的和除以k,现要求其中的最小值 Input 第一行2个正整数,分别为 ...

  6. 数据结构-二分查找(Binary Search)

    #include <stdio.h> #include <string.h> #include <stdlib.h> #define LIST_INIT_SIZE ...

  7. 从源码带你看懂functools的partial方法

    1.what? partial是什么, partial也叫偏函数.源码的描述是: 部分应用给定参数和关键字的新函数. New function with partial application of ...

  8. Louis Armstrong【路易斯·阿姆斯特朗】

    Louis Armstrong Louis Armstrong had two famous nicknames. 路易斯·阿姆斯特朗有两个著名的绰号. Some people called him ...

  9. RGB色彩的计算机表示

    计算机显示模式[编辑] 24比特模式[编辑] 每像素24位(比特s per pixel,bpp)编码的RGB值:使用三个8位无符号整数(0到255)表示红色.绿色和蓝色的强度.这是当前主流的标准表示方 ...

  10. 记忆化搜索:HDU1078-FatMouse and Cheese(记忆化搜索)

    FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...