从本地 html/javascript 网站发布到在线 PHP 文件

2023-12-03

我正在尝试做什么

从本地 html/javascript 网站发布到在线 PHP 文件。

Problem

当我尝试使用下面的代码时,我不断收到下面提到的错误。

背景:

该网站旨在本地运行。由于每个用户都可以选择使用哪个浏览器,因此我希望找到一种可以解决上述问题的方法,而无需强制每个用户修改浏览器策略。

这可能吗,如果可以的话怎么办?

JavaScript 代码:

$.ajax({
    type: 'POST',
    url: 'http://example.com/test.php',
    crossDomain: true,
    data: "my_request_is=foo",
    dataType: 'json',
    success: function(responseData, textStatus, jqXHR) 
    {
        console.log(responseData);
    },
    error: function (responseData, textStatus, errorThrown) 
    {
        console.warn(responseData, textStatus, errorThrown);
        alert('CORS failed - ' + textStatus);
    }
});

PHP代码(test.php):

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type');
echo json_encode(array("your_request_was" => $_POST['my_request_is']));
?>

Error:

Error Image


默认情况下,chrome 不允许跨源请求,chrome 来自file:协议。您可以关闭 chrome、chromium 的打开实例并使用以下命令启动--disable-web-security flag

google-chrome --disabled-web-security

或通过设置不同的值在打开现有实例的情况下启动user-data-dir

google-chrome --disable-web-security --user-data-dir="~/.config/google-chrome-temp"

有没有一种方法可以完成我需要做的事情,同时 不需要我修改本地网络浏览器的策略?

不是chrome,chrome不修改默认设置;或者创建一个 chromium 扩展或应用程序来执行网络请求 - 哪里也合适permissions需要设置。

限制是有目的的。几个安全问题之一是本地计算机上的用户可能在不知情的情况下上传其计算机上一个或多个目录中的所有文件的列表,并且可能还上传目录本身,而不必意识到这一事实,请参阅

HTML5 文件 API 中的 FileReader.readAsText 如何工作?

哪个;请注意,在没有设置标志的情况下也可能发生。或者,请求的脚本可以执行读取或写入本地文件系统的操作,而用户不必知道其本地文件系统正在被外部脚本访问。

不过,在存在限制的情况下,用户必须执行肯定操作才能禁用限制对本地文件系统的访问的默认设置file:协议,并限制本地文件系统从中获取资源null origin到不同的起源。

正如@StefanoBalzarotti 所指出的

抱歉,如果我很挑剔,但此限制与“文件:”无关 协议,即使有“数据:”、“关于:”等……你也不能打叉 原产地请求。提出跨源请求的要求是 有一个起源主机

应该考虑到浏览器开发人员对跨源请求实施这种默认限制的原因。

谨慎使用,并意识到旗帜的重要性,旗帜--disable-web-security and --allow-file-access-from-files, see

  • 如何使 Google Chrome 标记“--allow-file-access-from-files”永久生效?

  • Chromium 命令行开关列表

专为本地 Web 开发而设计,而不是作为需要 Web 应用程序资源的本地应用程序的解决方法。

--disable-web-security不要强制执行同源策略。 (用过的 由人们测试他们的网站。)

--allow-file-access-from-files默认情况下,file:// URI 无法读取 其他文件:// URI。对于需要的开发人员来说,这是一个覆盖 用于测试的旧行为。

标志描述中的“测试”术语应强调标志的使用。这些标志不是为生产用途而设计的。


备择方案,

  • 创建一个 chromium 扩展来执行网络任务;

  • 创建一个 Chrome 应用来执行网络任务

其中任一需要适当的permissions设置于manifest.json.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从本地 html/javascript 网站发布到在线 PHP 文件 的相关文章

  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • ajax4jsf死了吗?还有哪些其他适用于 JSF 的 AJAX 库?

    我目前正在使用JBoss RichFaces http www jboss org jbossrichfaces 我正在从事的项目的 JSF 组件库 一般来说 它工作得很好 特别是 ajax4jsf A4J 提供的 AJAX 支持 但我发现
  • Electron - 为什么在关闭事件时将 BrowserWindow 实例设置为 null

    The 电子文档 https electronjs org docs api browser window 提供以下代码示例来创建新窗口 const BrowserWindow require electron let win new Br
  • 使用 JQuery 更改元素的顺序

    有人知道我做错了什么吗 我正在尝试更改某些图像的显示顺序 我希望每次按下按钮时图像都会向右 向左移动一个位置 这是我尝试过的 但没有运气 任何帮助或见解将不胜感激 rightShift click function img hide var
  • jQuery 获取元素内的鼠标位置

    我希望制作一个控件 用户可以在 div 内单击 然后拖动鼠标 然后松开鼠标以指示他们想要的内容有多长 这是针对日历控件的 因此用户将指示特定事件的时间长度 看起来最好的方法是在父 div 上注册一个 mousedown 事件 而父 div
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • Javascript/Jquery:确定用户是否使用鼠标滚轮、滚动条或键盘滚动

    我正在尝试让用户界面正常工作 如果他们使用鼠标滚轮 我需要让它以一种方式滚动 如果他们使用滚动条 我需要让它以另一种方式滚动 如果他们使用键盘 我需要让它以另一种方式滚动 我相信滚轮和滚动条都充当鼠标事件 但是当单击滚动条时我无法让 jav
  • jQuery 对象相等

    如何确定两个 jQuery 对象是否相等 我希望能够在数组中搜索特定的 jQuery 对象 inArray jqobj my array 1 alert deviceTypeRoot deviceTypeRoot False alert d
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • Kubernetes 未知领域“行为”

    我正在 Kubernetes 中创建 Horizo ntalPodAutoscaler 我需要将缩减稳定窗口配置为小于默认值 使用的代码和错误如下 apiVersion autoscaling v2beta2 kind Horizontal
  • 在pyspark中不使用pivot进行分组的有效方法

    我有一个查询 需要使用 pyspark 计算内存利用率 我已经使用pivot 使用 python pandas 实现了这一点 但现在我需要在 pyspark 中执行此操作 而旋转将是一个昂贵的功能 所以我想知道 pyspark 中是否有任何
  • 绑定到 ItemsControl 中的 CurrentItem

    下面的 XAML 基本上是试图列出以下内容Buttons 由Name中对象的属性Views当前集合DataContext 当我点击一个按钮时CurrentItem的财产CollectionViewSource应该改变和相关的View应显示在
  • Spring Boot 过滤器调用了两次或根本没有调用

    我实现了一个自定义过滤器 它将请求的 cookie 中的一些内容添加到其标头中 Component Slf4j public class MyCustomFilter implements Filter Override public vo
  • 如何使用 livedata 从服务更新 UI?

    我正在创建播放器应用程序 我想为我的媒体播放器使用前台服务 我需要使用服务中的实时数据更新 UI 我已经阅读过有关使用广播接收器的信息 但我想使用 livedata 假设您使用具有实时数据的服务 如下所示 class MusicServic
  • 组合时间序列对象和列表:包“termstrc”

    R 包 termstrc 专为术语结构估计而设计 是一个非常有用的工具 但它需要以一种特别尴尬的格式设置数据 列表中的列表 Question 为了创建运行函数 dyncouponbonds 所需的重复子列表格式 在 R 外部或内部准备和调整
  • 更新 pygame 中的文本

    我在这里做错了什么 我想更新标签的文本以适应玩家得分 我查看了其他示例并添加了更新方法 但文本仍然保持不变 class Label def init self txt location size 160 30 bg WHITE fg BLA
  • youtube 嵌入视频 pregreplace 与开始计时

    在我们的论坛上 我们目前用嵌入对象替换了所有 YouTube 链接 感谢以下答案 如何使用正则表达式查找字符串中的所有 YouTube 视频 ID 问题是 我们的许多用户希望直接发布指向视频中特定时间的链接 例如 注意 t 1m15s 根据
  • SQL Bigquery:将特定组的选择限制为 10

    下面是示例表 目前 该表对于每个 ID 都有无限的条目 我的要求是 首先按 rand 升序对 ID 进行排序 然后只取前 2 行 ID 和 companies CREATE TABLE table name ID int companies
  • 将 Jetty 绑定到 IPv6 地址

    我正在尝试将 Jetty 绑定为仅侦听 IPv6 地址 我正在使用 Jetty 7 4 2 v20110526 我的jetty xml
  • 在图像上绘制对角线

    您好 我正在尝试在图像的右上角到左下角之间绘制对角线 这是到目前为止我的代码 width getWidth picture height getHeight picture for x in range 0 width for y in r
  • 根据月份日期向数据表添加季节列

    我正在使用 data table 我正在尝试创建一个名为 season 的新列 它基于名为 MonthName 的列创建一个具有相应季节的列 例如夏季 冬季 我想知道是否有更有效的方法来根据月份值将季节列添加到数据表中 这是 300 000
  • 默认情况下是否启用可选依赖项?

    如果我定义一个依赖项 例如foo version 1 0 0 optional true 当我执行 cargo run 时它会可用吗 我可以检查它是否在代码中启用吗 if cfg feature foo 似乎不起作用 就像该功能一直缺失一样
  • matplotlib 条形图中的极限误差线

    我试图让误差条显示在置信区间的限制处 而不是显示在中心 我想要的是这样的 但我得到的是这样的 为了绘制条形图 我使用了这个 import pandas as pd import numpy as np import matplotlib p
  • 验证视图状态 MAC 失败错误

    尝试通过传递参数来运行报表查看器 但收到错误 验证视图状态 MAC 失败错误 ASP NET MVC 已尝试以下但没有运气 添加了机器密钥 http aspnetresources com tools machineKey 到 web co
  • Hyperledger Fabric 加密材料

    如果我们看到加密配置文件夹中基础网络 of 布料样品 我们有各种类型的各种证书材料 example com ca 0d46ccf0e9436c1bc3b6e2bf80cdb202c4943604f95c72ee0ff839d3ec30071
  • 由于名称中存在撇号而导致无效的 XPath 表达式异常

    我收到以下代码的无效 Xpath 异常 current Name current Name replace System out println current Name String xp1 page name current Name
  • 在 web.config 文件中设置重定向

    我正在尝试使用更具描述性的 URL 来重定向一些不友好的 URL 这些 URL 结尾为 aspx cid 3916每个类别名称页面的最后一位数字都不同 我希望它重定向到Category CategoryName 3916 我在web con
  • Android:如何创建“持续”通知?

    您好 我如何创建像第一个电池指示器一样的永久通知 如果您正在使用NotificationCompat Builder 您可以使用 NotificationCompat Builder mBuilder new NotificationCom
  • 从本地 html/javascript 网站发布到在线 PHP 文件

    我正在尝试做什么 从本地 html javascript 网站发布到在线 PHP 文件 Problem 当我尝试使用下面的代码时 我不断收到下面提到的错误 背景 该网站旨在本地运行 由于每个用户都可以选择使用哪个浏览器 因此我希望找到一种可