gpt4 book ai didi

javascript - 如何通过 Javascript 发送和接收表单数据

转载 作者:行者123 更新时间:2023-11-28 15:22:32 24 4
gpt4 key购买 nike

首先考虑这个:StackoverFlow link .

这里,使用Ajax打开一个到服务器的Xhttp channel ,并使用post方法将一些数据发送到php脚本文件。我在 CGI-bin 中有一个 perl 脚本文件,但这也应该可以工作。

我想通过 Javascript 将数据发送到 Perl 脚本,并在不刷新页面的情况下接收它,所以我这样做了:

Javascript:

var basepath = "localhost";
var req = new XMLHttpRequest();

req.open("POST", basepath+"/perlweb/lox.pl", false);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send("script="+this.script);

req.onreadystatechange = function(){
// execute this when ready state changes, i.e. server responds
if (req.readyState == 4 && req.Status == 200) {
// we got what we wanted
console.log(req.responseText);
}
}

lox.pl 是我的脚本名称。它位于 localhost 下的/perlweb 中。

我在同一位置创建了此文件,名称为 test.pl:

#! /path/to/perl
print "Content-type: text/plain\n\n";
print "it now works\n";

使用 /localhost/perlweb/test.pl 调用它会产生预期的输出。所以我认为 perl 也已经准备好了。

现在,回到 javascript,我有两件事:

我有这个警告:

Synchrone XMLHttpRequests am Haupt-Thread sollte nicht mehr verwendet werden, weil es nachteilige Effekte für das Erlebnis der Endbenutzer hat. Für weitere Hilfe siehe http://xhr.spec.whatwg.org/ 

翻译为:主线程中的同步 XMLHttpRequest 不应再使用,因为它可以对最终用户的最终结果产生可持续的影响(??原文如此)。

我想摆脱这个,但我不知道从哪里开始。查找链接xhr.spec.whatwg.org让我很困惑。这看起来像是一份完整的规范文档。

有人可以简单地指出我应该做什么吗?

我有这个错误:

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

虽然该文件存在于我自己的计算机中(因为该文件存在于我自己的计算机中,所以我假设我不会遇到 CORS 问题)。

那么是什么导致了这个问题呢?

最佳答案

要异步发送,请更改

req.open("POST", basepath+"/perlweb/lox.pl", false); // false - sync

req.open("POST", basepath+"/perlweb/lox.pl", true);  // true - async

async - An optional boolean parameter, defaulting to true, indicating whether or not to perform the operation asynchronously. If this value is false, the send() method does not return until the response is received. (Ref)

Note: Starting with Gecko 30.0 (Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27), synchronous requests on the main thread have been deprecated due to the negative effects to the user experience.

这就是为什么您收到警告“主线程中的同步 XMLHttpRequest 不应再使用”的原因。

<小时/>

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

我建议改变

var basepath = "localhost";

到任一

var basepath = "http://localhost";  or
var basepath = "/localhost";

因为,如果我没记错的话,您想要打开计算机上的 URL 或本地路径,但“localhost”本身可能两者都不是。

如果您仍然遇到此错误,请参阅"NS_ERROR_DOM_BAD_URI: Access to restricted URI denied"

关于javascript - 如何通过 Javascript 发送和接收表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com