javascript的跨域调用

【服务端】

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.None)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public void HelloWorld(string jsonStudent)
        {
            HttpResponse resp = Context.Response;
            string callBack = Context.Request["callback"].ToString();
            resp.Clear();
            resp.ContentEncoding = new UTF8Encoding(false);
            resp.ContentType = "application/json";
            resp.Charset = "utf-8";
            Student stu = JsonSerializer<Student>.Deserialize(jsonStudent);
            resp.Write(callBack+"("+JsonSerializer<Student>.Serialize(stu)+")");
            resp.End();
        }

        [WebMethod]
        public void Hello(string js)
        {
            HttpResponse resp = Context.Response;
            resp.Clear();
            resp.Charset = "utf-8";
            string callBack = Context.Request["callback"].ToString();
            resp.ContentEncoding = new UTF8Encoding(false);
            resp.ContentType = "application/json";
            string callBackFun = callBack + "(‘"+ js +"‘)";
            resp.Write(callBackFun);
            resp.End();
        }
    }

【客户端】

一、完整写法:

$.ajax(
      {
        url:"http://localhost:3997/Service1.asmx/HelloWorld",
        data:"jsonStudent={\"id\":\"1\",\"name\":\"董玮\"}",   //最好按照标准写法
        contentType:"application/json",
        type:"post",
        dataType:"jsonp",
        success:function(data)
        {
         alert(data.id+"<===>"+data.name);
        }
      });

二、简化写法:

$.getJSON("http://localhost:3997/Service1.asmx/Hello?callback=?",{"js":"董玮"},
      function(data)
      {
      alert(data);
      },"post");
时间: 2024-10-12 10:58:27

javascript的跨域调用的相关文章

如何通过js跨域调用ASP.NET Web API (请问如何实现在javascript中通过http get的方式跨域调用ASP.NET Web API?)

客户端js无需任何专门设置,使用通常的ajax调用即可: $.ajax({ url: '跨域URL', type: 'get', dataType: 'json', success: function (data) { $('#banner_right').html(data); } }); 服务端需要在WebApiConfig.Register()中添加如下的代码 public static class WebApiConfig { public static void Register(Ht

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案

原文:http://www.cnblogs.com/chenxizhang/p/3821703.html 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 1.使用模板创建一个最简单的ASP.NET Web API项目,调试起来确认能正常工作 public class TestController : ApiController { // GET api/test public IEnumera

跨域调用webapi

web端跨域调用webapi 在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已经给我们搭建好了webapi的环境,所以我们不必去添加引用一些dll,直接开始写代码吧. 因为这只是做一个简单的Demo,并没有连接数据库. 第一步我们要在Models文件夹里添加一个实体类Employees,用来存放数据. Employees.cs里的内容如下: 1

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

跨域调用webapi web端跨域调用webapi

https://www.baidu.com/s?ie=UTF-8&wd=webapi%20%E8%B7%A8%E5%9F%9F web端跨域调用webapi 在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已经给我们搭建好了webapi的环境,所以我们不必去添加引用一些dll,直接开始写代码吧. 因为这只是做一个简单的Demo,并没有连接数据库.

以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API

新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E) 2.使用Weibo JS-SDK(http://open.weibo.com/sdk/js ). 官方的方式总是显得很麻烦.我们来探讨一下,能不能通过非官方的方法,免AppKey.免认证.Ajax跨域调用新浪微博

WCF跨域调用

1  WCf跨域调用  一个用 Jsonp  (这是蒋金楠大神写的一个实例这里把他拷贝过来) 在契约中 [ServiceContract] public interface IEmployees { [WebGet(UriTemplate = "all",ResponseFormat =WebMessageFormat.Json)] IEnumerable<Employee> GetAll(); } public class Employee { public string

跨域调用(mvc、webapi)

JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.通常来说,跨域分为以下几类: 先创建两个项目,一个mvc,一个webapi,演示由mvc调用webapi mvc前端: 会出现问题 然后新建一个类在webapi根目录下,这个类创建特性[CrossSite],放在需要跨域的方法前,方法就可跨域 using System.Web; using System.Web.Http.Filters; using System.Web.Mvc; namespace APIApplicati