- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 AJAX 加载跨域 HTML 页面,但除非 dataType 为“jsonp”,否则我无法获得响应。但是,使用 jsonp 时,浏览器需要脚本 mime 类型,但正在接收“text/html”。
我的请求代码是:
$.ajax({
type: "GET",
url: "http://saskatchewan.univ-ubs.fr:8080/SASStoredProcess/do?_username=DARTIES3-2012&_password=P@ssw0rd&_program=%2FUtilisateurs%2FDARTIES3-2012%2FMon+dossier%2Fanalyse_dc&annee=2012&ind=V&_action=execute",
dataType: "jsonp",
}).success( function( data ) {
$( 'div.ajax-field' ).html( data );
});
有什么方法可以避免使用 jsonp 进行请求吗?我已经尝试过使用 crossDomain 参数,但没有成功。
如果没有,有什么方法可以接收jsonp中的html内容吗?目前控制台在 jsonp 回复中显示“unexpected <”。
最佳答案
有一些方法可以克服跨域障碍:
有一些插件可以帮助处理跨域请求:
注意!
解决这个问题的最好方法是在后端创建自己的代理,这样你的代理就会指向其他域中的服务,因为后端不存在同源政策限制。但如果您无法在后端执行此操作,请注意以下提示。
<小时/>**警告!**使用第三方代理并不是一种安全的做法,因为他们可以跟踪您的数据,因此可以将其用于公共(public)信息,但绝不用于私有(private)数据。
<小时/>下面显示的代码示例使用 jQuery.get() 和 jQuery.getJSON() ,都是jQuery.ajax()的简写方法
<小时/>Public demo server (cors-anywhere.herokuapp.com) will be very limited by January 2021, 31st
<小时/>The demo server of CORS Anywhere (cors-anywhere.herokuapp.com) is meant to be a demo of this project. But abuse has become so common that the platform where the demo is hosted (Heroku) has asked me to shut down the server, despite efforts to counter the abuse. Downtime becomes increasingly frequent due to abuse and its popularity.
To counter this, I will make the following changes:
- The rate limit will decrease from 200 per hour to 50 per hour.
- By January 31st, 2021, cors-anywhere.herokuapp.com will stop serving as an open proxy.
- From February 1st. 2021, cors-anywhere.herokuapp.com will only serve requests after the visitor has completed a challenge: The user (developer) must visit a page at cors-anywhere.herokuapp.com to temporarily unlock the demo for their browser. This allows developers to try out the functionality, to help with deciding on self-hosting or looking for alternatives.
CORS Anywhere 是一个 node.js 代理,它将 CORS header 添加到代理请求中。
要使用 API,只需在 URL 前加上 API URL 前缀即可。 (支持https:请参阅github repository)
如果您想在需要时自动启用跨域请求,请使用以下代码片段:
$.ajaxPrefilter( function (options) {
if (options.crossDomain && jQuery.support.cors) {
var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
//options.url = "http://cors.corsproxy.io/url=" + options.url;
}
});
$.get(
'http://en.wikipedia.org/wiki/Cross-origin_resource_sharing',
function (response) {
console.log("> ", response);
$("#viewer").html(response);
});
<小时/>Whatever Origin是跨域jsonp访问。这是 anyorigin.com 的开源替代品.
要从 google.com 获取数据,您可以使用以下代码段:
// It is good specify the charset you expect.
// You can use the charset you want instead of utf-8.
// See details for scriptCharset and contentType options:
// http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings
$.ajaxSetup({
scriptCharset: "utf-8", //or "ISO-8859-1"
contentType: "application/json; charset=utf-8"
});
$.getJSON('http://whateverorigin.org/get?url=' +
encodeURIComponent('http://google.com') + '&callback=?',
function (data) {
console.log("> ", data);
//If the expected response is text/plain
$("#viewer").html(data.contents);
//If the expected response is JSON
//var response = $.parseJSON(data.contents);
});
<小时/>CORS 代理是一个简单的 node.js 代理,可为任何网站启用 CORS 请求。它允许您网站上的 JavaScript 代码访问其他域中的资源,而这些资源通常会因同源策略而被阻止。
它是如何工作的?CORS 代理利用跨源资源共享,这是随 HTML 5 添加的一项功能。服务器可以指定它们希望浏览器允许其他网站请求它们托管的资源。 CORS 代理只是一个 HTTP 代理,它向响应添加一个 header ,表示“任何人都可以请求此请求”。
这是实现目标的另一种方式(参见 www.corsproxy.com )。您所要做的就是从被代理的 URL 中删除 http:// 和 www.,并在 URL 前面添加 www.corsproxy.com/
$.get(
'http://www.corsproxy.com/' +
'en.wikipedia.org/wiki/Cross-origin_resource_sharing',
function (response) {
console.log("> ", response);
$("#viewer").html(response);
});
http://www.corsproxy.com/
域现在似乎是一个不安全/可疑的站点。不建议使用。
最近我发现了这个,它涉及各种面向安全的跨源远程共享实用程序。但它是一个以Flash为后端的黑匣子。
您可以在此处查看它的实际效果:CORS proxy browser
在 GitHub 上获取源代码:koto/cors-proxy-browser
关于javascript - 使用AJAX加载跨域端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927726/
这是我的本地域名 http://10.10.1.101/uxsurvey/profile/dashboard 在 Controller 中,我为用户列表设置了一个操作 redirect(control
要处理 Canonical URL,最佳做法是执行 301 重定向还是更好地为 www 和非 www 域使用相同的 IP 地址? 例如: 想要的规范 URL/域是 http://example.com
1 内网基础 内网/局域网(Local Area Network,LAN),是指在某一区域内有多台计算机互联而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机
1 内网基础 内网/局域网(Local Area Network,LAN),是指在某一区域内有多台计算机互联而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机
我想创建一个 weblogic 集群,其中有两个托管服务器,每个服务器在物理上独立的远程计算机上运行 根据weblogic文档 All Managed Servers in a cluster mus
我正在运行 grails 3.1.4,但在创建允许我将多个域对象绑定(bind)到其他几个域对象的模式时遇到了问题。作为我正在尝试做的一个例子: 我有三个类(class)。书籍、作者和阅读列表。 作者
我试图使用@count函数来根据它获取数据,但是在没有崩溃报告的情况下它以某种方式崩溃了。 这是代码 class PSMedia: Object { @objc dynamic var id
有谁知道是否有办法只输入字母字符而不输入数字?我想过这样的事情 CREATE DOMAIN countryDomain AS VARCHAR(100) CHECK( VALUE ??? );
我的代码: const checkoutUrl = 'https://example.com/checkout/*' window.onload = startup() function st
一些不是我编写的应用程序,也不是用 PHP 编写的,它为域 www.example.com 创建了一个 cookie。 我正在尝试替换该 cookie。所以在 PHP 中我做到了: setcookie
什么是 oauth 域?是否有任何免费的 oauth 服务?我可以将它用于 StackApps registration 吗? ?我在谷歌上搜索了很多,但找不到答案。 最佳答案 这是redirect_
自从 In October 2009, the Internet Corporation for Assigned Names and Numbers (ICANN) approved the cre
我使用 apache 作为我的应用程序 Web 服务器的代理,并希望即时更改与 sessionid cookie 关联的域名。 该cookie有一个与之关联的.company.com域,我想使用apa
我只想托管一个子域到cloudflare。我不想将主域名的域名服务器更改为他们的域名服务器。真的有可能吗? 最佳答案 是的,这是可能的,但是需要通过CloudFlare合作伙伴进行设置,或者您需要采用
When using socket in the UNIX domain, it is advisable to use path name for the directory directory m
想象两个共享一个域类的 Grails 应用程序。也许是 Book 域类。 一个应用程序被标识为数据的所有者,一个应用程序必须访问域数据。类似于亚马逊和亚马逊网络服务。 我想拥有的应用程序将使用普通的域
我有一个包含字段“URL”的表单。第一部分需要用户在文本框中填写。第二部分是预定义的,显示在文本框的右侧。 例如,用户在文本框中输入“test”。第二部分预定义为“.example.com”。因此,总
如果我要关闭并取消分配 azure 中的域 Controller ,从而生成新的 vm Generationid,我需要采取哪些步骤来恢复它? 最佳答案 what steps do I need to
我想尝试使用 Azure 作为托管提供商(我有一个域)。我读过那篇文章https://learn.microsoft.com/en-us/azure/app-service-web/web-sites
所以.... 我想知道是否有人可以在这方面协助我? 基本上,我已经创建了一个自托管的Docker容器,用作构建代理(Azure DevOps) 现在,我已经开始测试代理,并且由于我们的放置文件夹位于W
我是一名优秀的程序员,十分优秀!