xmlhttprequest 相关问题

XMLHttpRequest(XHR)是一个JavaScript对象,它公开了一个API,用于从运行Web浏览器的前端代码发出异步HTTP请求 - 也就是说,用于启用称为AJAX的编程技术。 XHR API是遗留API。它已被Fetch API取代。

预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段

我在前端使用 angularjs2 并使用 Java Spring 作为后端 Rest api 并收到错误。 XMLHttpRequest 无法加载“某些 url”。 Access-Control 不允许请求标头字段 appkey...

回答 1 投票 0

使用带有动态/部分已知 URL 循环的 MS XML、6.0 库发送 HTTP 请求

我正在尝试在 www.statmuse.com 上循环浏览投手的比赛日志。主要问题是,由于我试图在循环中执行此操作,因此部分 URL 目前未知。 例如,看着妈妈...

回答 1 投票 0

我在使用 JS 从后端(PHP)获取数据时遇到问题 - XMLHTTP 请求

我真的被这个问题困住了,把头撞在桌子上。 我通常尝试单独解决这些类型的问题,但截止日期已近,希望得到一些帮助。 这是b...

回答 1 投票 0

带有 PHP 标头的跨源请求标头 (CORS)

我有一个简单的 PHP 脚本,我正在尝试跨域 CORS 请求: 我有一个简单的 PHP 脚本,我正在尝试跨域 CORS 请求: <?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: *"); ... 但我仍然收到错误: X-Requested-With 不允许Access-Control-Allow-Headers请求标头字段 我还缺少什么吗? 正确处理 CORS 请求有点复杂。这是一个可以更全面(且正确)响应的函数。 /** * An example CORS-compliant method. It will allow any GET, POST, or OPTIONS requests from any * origin. * * In a production environment, you probably want to be more restrictive, but this gives you * the general idea of what is involved. For the nitty-gritty low-down, read: * * - https://developer.mozilla.org/en/HTTP_access_control * - https://fetch.spec.whatwg.org/#http-cors-protocol * */ function cors() { // Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { // Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one // you want to allow, and if so: header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day } // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) // may also be using PUT, PATCH, HEAD etc header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); exit(0); } echo "You have CORS!"; } 安全注意事项 根据批准的来源列表检查 HTTP_ORIGIN 标头。 如果来源未获批准,那么您应该拒绝该请求。 请阅读规格。 TL;博士 当浏览器想要执行跨站点请求时,它首先确认对 URL 的“飞行前”请求是否可以。通过允许 CORS,您将告诉浏览器来自此 URL 的响应可以与其他域共享。 CORS 不保护您的服务器。 CORS 尝试通过告诉浏览器与其他域共享响应的限制来保护您的用户。通常情况下,这种共享是完全被禁止的,因此 CORS 是一种在浏览器的正常安全策略中戳破漏洞的方法。这些漏洞应该尽可能小,因此请务必根据某种内部列表检查 HTTP_ORIGIN。 这里存在一些危险,特别是如果 URL 提供的数据通常受到保护。您实际上是在允许源自其他服务器的浏览器内容读取(并可能操纵)您服务器上的数据。 如果您打算使用 CORS,请仔细阅读协议(它很小)并尝试了解您在做什么。代码示例中给出了用于此目的的参考 URL。 标头安全 据观察,HTTP_ORIGIN 标头不安全,这是事实。事实上,所有 HTTP 标头对于该术语的不同含义都是不安全的。除非标头包含可验证的签名/hmac,或者整个对话通过 TLS 进行身份验证,否则标头只是“浏览器告诉我的内容”。 在这种情况下,浏览器会说“来自域 X 的对象想要从此 URL 获取响应。可以吗?” CORS 的重点是能够回答“是的,我会允许这样做”。 我遇到了同样的错误,并在后端脚本中使用以下 PHP 修复了它: header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST'); header("Access-Control-Allow-Headers: X-Requested-With"); Access-Control-Allow-Headers 不允许 * 作为可接受的值,请参阅 Mozilla 文档此处。 您应该发送接受的标头(而不是星号)(首先是 X-Requested-With,如错误所示)。 更新: *现已接受是Access-Control-Allow-Headers。 根据 MDN Web 文档 2021: 值 * 仅算作没有凭据的请求(没有 HTTP cookie 或 HTTP 身份验证信息的请求)的特殊通配符值。在带有凭据的请求中,它被视为文字标头名称*,没有特殊语义。请注意,授权标头不能使用通配符,并且始终需要显式列出。 互联网上的许多描述都没有提到指定 Access-Control-Allow-Origin 是不够的。这是一个适合我的完整示例: <?php if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: POST, GET, DELETE, PUT, PATCH, OPTIONS'); header('Access-Control-Allow-Headers: token, Content-Type'); header('Access-Control-Max-Age: 1728000'); header('Content-Length: 0'); header('Content-Type: text/plain'); die(); } header('Access-Control-Allow-Origin: *'); header('Content-Type: application/json'); $ret = [ 'result' => 'OK', ]; print json_encode($ret); 如果您想从 PHP 创建 CORS 服务,您可以使用此代码作为处理请求的文件中的第一步: // Allow from any origin if(isset($_SERVER["HTTP_ORIGIN"])) { // You can decide if the origin in $_SERVER['HTTP_ORIGIN'] is something you want to allow, or as we do here, just allow all header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); } else { //No HTTP_ORIGIN set, so we allow any. You can disallow if needed here header("Access-Control-Allow-Origin: *"); } header("Access-Control-Allow-Credentials: true"); header("Access-Control-Max-Age: 600"); // cache for 10 minutes if($_SERVER["REQUEST_METHOD"] == "OPTIONS") { if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_METHOD"])) header("Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT"); //Make sure you remove those you do not want to support if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); //Just exit with 200 OK with the above headers for OPTIONS method exit(0); } //From here, handle the request as it is ok 我只是设法让 dropzone 和其他插件来处理此修复(angularjs + php 后端) header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Credentials: true"); header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token , Authorization'); 将其添加到您的 upload.php 或您要发送请求的位置(例如,如果您有 upload.html 并且您需要将文件附加到 upload.php,然后复制并粘贴这 4 行)。 另外,如果您在 chrome/mozilla 中使用 CORS 插件/附加组件,请务必多次切换它们,以便启用 CORS 当使用 Angular 4 作为客户端、PHP 作为服务器端时,这么多代码对我来说很有效。 header("Access-Control-Allow-Origin: *"); 如果我们不能正确理解 CORS 的功能,它可能会让人头疼。我在 PHP 中使用它们并且它们工作没有问题。 参考这里 header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Credentials: true"); header("Access-Control-Max-Age: 1000"); header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding"); header("Access-Control-Allow-Methods: PUT, POST, GET, OPTIONS, DELETE"); 这应该有效 header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding"); 我使用了这5个标头,之后解决了cors错误(后端:PHP,前端:VUE JS) header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS, post, get'); header('Access-Control-Max-Age: 3600'); header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token'); header('Access-Control-Allow-Credentials: true'); 将此代码添加到.htaccess 在标头中添加自定义身份验证密钥,如 app_key、auth_key ..etc Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Headers: "customKey1,customKey2, headers, Origin, X-Requested-With, Content-Type, Accept, Authorization"

回答 11 投票 0

为什么 ReqRes 对我的 POST 请求的响应没有返回我包含的值?

我正在学习 API 等,我试图向 ReqRes.in 发送一个简单的 POST 请求。虽然 POST 响应表明请求成功,但它不包含我正在发送的数据,...

回答 1 投票 0

HTML5 FormData 在 Java Servlet request.getParameter() 中返回 null

我的观点是 HTML 5。我正在使用 FormData 对 Servlet 进行 AJAX 2 POST。在 servlet 内部,我试图读取请求参数。我看不到任何参数。但是,Google Chrome 开发控制台...

回答 1 投票 0

在装饰XMLHttpRequest的onreadystatechange方法的函数中获取URL

我需要为我的项目中使用 XMLHttpRequest 发送的所有请求添加一个特殊的标头。我通过装饰 XMLHttpRequest 的 onreadystatechange 方法来实现这一点: XMLHttpRequest = 新代理(

回答 1 投票 0

欺骗 xmlhttprequest (greasemonkey)

我阻止了来自greatmonkey的XMLHttpRequest,但是当它没有得到响应时页面会出现错误。所以我尝试欺骗,就好像收到了回复一样。不幸的是,XMLHttpRequest 似乎已读取字段...

回答 2 投票 0

NodeJS 对客户端请求的响应 - HTTP

我使用 http.createServer(...) 函数在 NodeJS 中创建了一个 HTTP 服务器。我从客户端 JavaScript 文件中使用 localhost url 上的 POST 方法发送了一个查询。服务器有

回答 1 投票 0

webRequest API:如何获取新请求的requestId?

chrome.webRequest API 具有请求 ID 的概念(来源:Chrome webRequest 文档): 请求 ID 每个请求都由请求 ID 来标识。该 ID 在浏览器会话中是唯一的...

回答 2 投票 0

如何使用socket.io使'file://'文件连接到node.js服务器

问题是“file://”协议无法发送xmlhttp请求(我认为)。我正在使用 socket.io,当我尝试执行 var socket = io("my Codesandbox server link"); 时它没有连接...

回答 1 投票 0

在 Render 上部署 React 应用程序后,链接返回 404

我有一个模拟商店 React 应用程序,它有一些不同的路由,可以在本地主机上按预期工作。部署后(在 Surge 和 Render 上),子目录/链接不起作用。 我的404页面doe...

回答 1 投票 0

部署 React 应用程序后链接返回 404

我有一个模拟商店 React 应用程序,它有一些不同的路由,可以在本地主机上按预期工作。部署后(在 Surge 和 Render 上),子目录/链接不起作用。 我的404页面doe...

回答 1 投票 0

如何等待并使用来自 XMLHttpRequest 的数据?

NOAA 提供来自各种气候数据的公共数据集的数据。我想做的是,在纯 JavaScript 解决方案中,从 NOAA 下载台站和台站元数据文件(纯文本

回答 1 投票 0

CORS 问题 - 预检请求不允许重定向

我希望得到帮助来解决我已经困扰了一段时间的问题。我正在使用 React 和 NodeJS Express 开发一个 Web 应用程序。将后端和前端部署到 Render.com 后,我购买了一个

回答 1 投票 0

如何将多个数据传递到JSON.stringify

我想从服务器获取Users表中UserId和Name 2个字段的数据, 所以我创建了一个请求,使用 @UserIdList 参数将数据传递到服务器以执行 postgresql 查询。 选择...

回答 1 投票 0

拦截XMLHttpRequest并修改responseText

我正在尝试构建一个脚本,该脚本将充当本机 XMLHttpRequest 对象的代理/包装器,使我能够拦截它,修改responseText并返回到原始的onreadystatec...

回答 5 投票 0

Flutter DIO 库 XMLHttpRequest 错误 Web

我正在使用 Flutter DIO 库。 它在我的 Android 应用程序上运行良好,但在 Web 上出现错误。 错误:DioError [DioErrorType.response]:XMLHttpRequest 错误。 如果我尝试使用 http 相同的 url

回答 2 投票 0

在 XHR 中使用 multipart/form-data 作为 Content-Type 时收到“400 Bad Request”

我有一个发送一些数据的 AJAX 请求。数据遵循多部分/表单数据规范。 我面临的问题是浏览器将 Content-Type 标头设置为 text/plain 并且它

回答 2 投票 0

XHR HEAD 请求是否可以不遵循重定向(301 302)

是否可以发送 xhr HTTP HEAD 请求以仅获取第一个请求的标头响应,而不像重定向一样自动遵循 301、302?我只对获得新位置感兴趣...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.