当前位置: 首页 > 面试题库 >

从jQuery访问Web服务-跨域

孔俊爽
2023-03-14
问题内容

我正在尝试从jQuery客户端访问wcf服务

具体来说,此示例
http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx#4

当客户端网页与服务位于同一域时,所有方法都可以正常工作

一旦我将客户端网页移到另一个域,它就会中断。无法到达服务,请求失败

所有示例(ASMX,REST和WCF)都会发生这种情况

任何想法如何使这个跨岛工作?


问题答案:

您正在违反同源策略。您正在访问的Web服务必须与发出请求的jQuery脚本位于同一域中。所有浏览器都实施此策略,以防止(例如)对Web应用程序进行跨站点脚本编写和代码注入攻击

围绕它有多种方法,包括JSONP,代理或Flash。

在建议您应该使用哪种技术之前,我们需要更多信息。我倾向于JSONP。但是与此同时,这里有一些轻松的阅读:

http://taossa.com/index.php/2007/02/08/same-origin-
policy/

https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript

这是JSONP的使用示例:

url = "http://www.test.com/getData.php?callback=parseResults";

document.body.appendChild((function() {
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.src = url;
    return newScript;
})());

function parseResults(data) {
    alert(data);
}


 类似资料:
  • 本文向大家介绍java web服务器实现跨域访问,包括了java web服务器实现跨域访问的使用技巧和注意事项,需要的朋友参考一下 一、CORS概述 跨源资源共享标准通过新增一系列 HTTP 头,让服务器能声明那些来源可以通过浏览器访问该服务器上的各类资源(包括CSS、图片、JavaScript 脚本以及其它类资源)。另外,对那些会对服务器数据造成破坏性影响的 HTTP 请求方法(特别是 GET

  • 问题内容: 我们有一个Java Web应用程序,我们需要访问一个Web服务,它是一个https Web服务。所以我将ssl证书添加到Websphere; SSL证书和密钥管理>密钥库和证书> NodeDefaultKeyStore>签署者证书 SSL证书和密钥管理>密钥库和证书> NodeDefaultTrustStore>签署者证书 当应用程序尝试访问Web服务时,将引发如下异常: 我屏蔽了专用

  • 问题内容: 是否有人从Oracle存储过程成功访问了Web服务?如果是这样,那是Java存储过程吗?PL / SQL存储过程? 有什么原因为什么我不应该尝试从存储的proc访问WS? 这是我到目前为止发现的几个参考 数据库Web服务 从Java存储过程调用外部Web服务 为了澄清,这是针对SOAP调用的 问题答案: 首先,您要调用哪种Web服务?我假设是SOAP或REST。 对于REST Web服

  • 问题内容: 我想通过将其存储为Servlet上下文属性来在Servlet和Web服务(JAX-WS)之间共享一个对象。但是,如何从Web服务检索servlet上下文? 问题答案: JAX-WS通过消息上下文使servlet上下文可用,可以使用Web服务上下文来检索它。插入以下成员将使JAX- WS将对Web服务上下文的引用注入到您的Web服务中: 然后,您可以使用以下命令访问servlet上下文:

  • 我在Eclipse IDE的应用程序中使用Play framework 1.2.5。我需要访问一个使用IBM JAX-RPC构建的web服务。我已经获得了我需要在应用程序中访问的web服务的wsdl文件。 对于普通JavaEE应用程序,我过去常常将WSDL粘贴到我的工作区中,通过右键单击WSDL file=生成文件 我不确定如何使用Play框架访问WSDL。 我想知道: 1)将WSDL文件粘贴到我

  • 问题内容: 我按照此处的说明使用内置Web服务器运行Django,并能够使用成功运行它python manage.py runserver。如果我从Web服务器本地访问127.0.0.1:port,则将显示Django页面,表明它可以正常工作。 我意识到Django网络服务器不是生产服务器,但是对于我来说,测试的重要之处在于能够从外界访问它-即,不是从服务器上的Web浏览器而是从另一台计算机访问它