`
getthrough
  • 浏览: 9397 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JS 跨域请求

阅读更多

 

JS 跨域请求

【什么是跨域】

当浏览器请求的目标地址(接口)与请求发出地的 ip 、端口、协议不同时,请求将会出错。

例如:“No 'Access-Control-Allow-Origin' header is present on the requested resource”;

如果只在前台做了跨域处理,那么浏览器可能提示 “Uncaught SyntaxError: Unexpected token :”错误。

 

【为什么有跨域限制】

为了防止CSRF攻击。【知乎解释

 

【常见的解决方法】

1. jsonp 方式

        前台:使用 jQuery 发送 Ajax 请求时加上 jsonp 字段,该字段对应的值为后台返回的回调函数的名称,这个名称需要前后台约定好,比如 jsonp:"callback"。

        后台:返回数据时,使用回调函数名称加括号包裹原来需要返回的数据。比如,返回的数据为 "success" 字符串,那么最终返回的结果为 “callback(success)"。

2. 服务器代理

        服务器后台请求不存在跨域问题,可以通过前台请求“同域”后台的接口,在接口中再调用需要请求的链接。

3. 跨域资源共享(Cross-origin resource sharing)

        前台:将 xhr (XMLHttpRequst) 属性withCredentials为true。

        后台:在 response headers 中设置 Access-Control-Allow-Origin,其值为允许跨域访问的 ip 和端口。比如:“http://127.0.0.1:80”; 同时设置 Access-Control-Allow-Credentials 为 true,这样允许把 cookie 携带至服务器。

4. 前台设置 domain.name 等等......解决方案还有很多

 

 

        此次遇到的跨域问题是通过服务器代理解决的。因为需要调用的接口是属于公司的公共服务接口,而多数跨域解决方法需要前后台同时修改。考虑到公共接口做特殊修改存在风险,因此这里通过开发后台接口,在接口中调用前台所需调用的地址,再将数据以 json 形式返回。

 

分享到:
评论

相关推荐

    javascript跨域请求包装函数与用法示例.docx

    本文将深入探讨一个具体的JavaScript跨域请求包装函数,并通过示例来展示其实际应用。 #### 一、理解跨域请求 跨域请求是指在一个域名下的页面发起对另一个域名下的资源的请求。浏览器为了保护用户隐私和数据安全...

    js跨域请求数据的3种常用的方法

    以上就是JavaScript跨域请求数据的三种常见方法。在实际开发中,选择哪种方法取决于项目需求、兼容性考虑以及服务器端的配合程度。对于需要复杂交互或安全性要求较高的场景,CORS可能是更好的选择;而对于简单的GET...

    JS跨域请求解决方案.docx

    ### JS跨域请求解决方案 #### 一、理解跨域与同源策略 **跨域**在Web开发中指的是从一个域名发起对另一个域名资源的请求。这种请求涉及到多个域名之间的数据交互,通常会受到浏览器安全策略——**同源策略**(Same...

    详解js跨域请求的两种方式,支持post请求

    JSONP实现跨域 常用的jquery实现跨域调用 $.ajax({ url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/index.php", dataType: "jsonp", jsonp: "callback", context: document.body, success: ...

    ajax跨域请求demo.zip

    这个"ajax跨域请求demo.zip"压缩包提供了一个关于如何实现Ajax跨域请求的示例,涉及到前后端的交互。 首先,我们关注"前端代码"部分。前端通常使用JavaScript库如jQuery来实现Ajax请求。jQuery的`$.ajax()`方法是...

    spring boot 支持js跨域请求

    spring boot 支持跨域 前台不需要jsonp 请求 正常js即可 spring boot 支持跨域 前台不需要jsonp 请求 正常js即可

    ajax跨域请求WebService.asmx

    【Ajax跨域请求WebService.asmx】是一个常见的Web开发技术应用场景,主要涉及到JavaScript的Ajax技术、C#编程语言以及ASP.NET的WebService组件。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的...

    jsonpajax跨域请求

    总结,JSONP和CORS是解决JavaScript跨域问题的两种主要方法,它们各有优缺点,适用于不同的场景。JSONP简单易用,但安全性较低;CORS则更安全,但需要服务器端的配合。在实际开发中,根据项目需求和浏览器兼容性选择...

    Jquery跨域Ajax请求测试

    在Web开发中,由于同源策略的限制,JavaScript通常无法直接访问不同源的资源,但随着Web服务的广泛应用,跨域请求的需求日益增加。jQuery,作为一个强大的JavaScript库,提供了便捷的方式来处理这种问题,特别是通过...

    tomcat跨域请求

    快速搭建跨域请求的jar包,帮助前后端快速解锁,分离。

    解决ajax跨域请求问题

    然而,跨域请求是Ajax的一个常见问题,由于浏览器的同源策略限制,Ajax请求只能向与当前页面同源的服务器发送。本文将深入探讨如何解决Ajax跨域请求的问题。 首先,理解“同源策略”是解决问题的关键。同源策略是...

    js跨域请求的5中解决方式

    然而,业界已经探索出了多种解决JavaScript跨域请求的方法,以下是五种常见的解决跨域请求问题的策略: 一、JSONP(JSON with Padding)方法 JSONP是一种解决跨域请求的方法,其核心思想是利用了script标签的跨域...

    javascript跨域请求包装函数与用法示例

    JavaScript跨域请求是Web开发中常见的一类问题,由于浏览器的同源策略限制,JavaScript不能直接访问不同源的资源。为了解决这个问题,开发者通常会使用JSONP(JSON with Padding)或CORS(Cross-Origin Resource ...

    html通过 ajax jsonp跨域请求接收和传送数据

    **AJAX和JSONP跨域请求的实现过程** 1. **AJAX跨域**: 通常,AJAX请求受到同源策略限制。为实现跨域,我们可以使用CORS(Cross-Origin Resource Sharing)机制。服务器需要在响应头中添加`Access-Control-Allow-...

    JavaScript跨域请求库XDomain.zip

    XDomain 是 JavaScript CORS 跨域请求的一个替代产品,无需任何服务器端的配置。只需要在同域下放置一个 proxy.html 文件即可。该库利用 XHook 来获取所有 XHR,可以无缝的和其他库协同工作。 Features Simple ...

    cross-request 3.1 YApi 跨域请求 谷歌浏览器

    cross-request 3.1 YApi 跨域请求 谷歌浏览器

    跨域请求百度天气预报

    跨域请求百度天气预报跨域请求百度天气预报跨域请求百度天气预报跨域请求百度天气预报跨域请求百度天气预报跨域请求百度天气预报跨域请求百度天气预报跨域请求百度天气预报

    ajax处理跨域请求

    然而,随着互联网应用的发展,数据交互的需求日益增多,跨域请求成为一种常见的需求。AJAX(Asynchronous JavaScript and XML)技术允许我们在后台与服务器进行异步数据交换,而无需刷新整个页面。当使用AJAX进行...

    ajax跨域请求

    ### AJAX跨域请求详解 #### 一、引言 在Web开发中,由于浏览器的同源策略限制,AJAX请求通常只能向同源服务器发送请求。然而,在实际应用中,跨域请求的需求非常常见。本篇文章将通过一个具体的示例(JSP页面+后台...

Global site tag (gtag.js) - Google Analytics