如何通过Javascript发送和接收表单数据 首先考虑这个问题:
这里,Ajax用于打开到服务器的Xhttp通道,并使用post方法将一些数据发送到php脚本文件。我在CGI-bin中有一个perl脚本文件,但这应该也可以 我想通过Javascript将数据发送到Perl脚本,并在不刷新页面的情况下将其接收回来,所以我这样做了: Javascript:如何通过Javascript发送和接收表单数据 首先考虑这个问题:,javascript,ajax,perl,Javascript,Ajax,Perl,这里,Ajax用于打开到服务器的Xhttp通道,并使用post方法将一些数据发送到php脚本文件。我在CGI-bin中有一个perl脚本文件,但这应该也可以 我想通过Javascript将数据发送到Perl脚本,并在不刷新页面的情况下将其接收回来,所以我这样做了: Javascript: var basepath = "localhost"; var req = new XMLHttpRequest(); req.open("POST", basepath+"/perlweb/lox.pl",
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,因为它可以对最终用户的最终结果产生可持续的影响
我想摆脱这个,但我不知道从哪里开始。查找链接让我感到困惑。这似乎是一个完整的规范文档
谁能简单地告诉我该怎么做
我有一个错误:
NS_ERROR_DOM_BAD_URI: Access to restricted URI denied
虽然该文件存在于我自己的机器中(因为该文件存在于我自己的机器中,所以我假设我不会触及CORS问题)
然后是什么导致了问题?要异步发送,请更改
req.open("POST", basepath+"/perlweb/lox.pl", false); // false - sync
到
async-一个可选的布尔参数,默认为true,指示是否异步执行操作。如果此值为false,则在收到响应之前,send()方法不会返回。()
注意:从Gecko 30.0(Firefox 30.0/Thunderbird 30.0/SeaMonkey 2.27)开始,由于对用户体验的负面影响,主线程上的同步请求已被弃用
这就是为什么您会收到警告“不应再使用主线程中的同步XMLHttpRequest”
NS\u错误\u DOM\u错误\u URI:拒绝访问受限URI 我建议换衣服
var basepath = "localhost";
要么
var basepath = "http://localhost"; or
var basepath = "/localhost";
因为,如果我没弄错的话,您想在您的机器上打开URL或本地路径,但“localhost”本身可能两者都不是
如果仍然存在此错误,请参见要异步发送,请更改
req.open("POST", basepath+"/perlweb/lox.pl", false); // false - sync
到
async-一个可选的布尔参数,默认为true,指示是否异步执行操作。如果此值为false,则在收到响应之前,send()方法不会返回。()
注意:从Gecko 30.0(Firefox 30.0/Thunderbird 30.0/SeaMonkey 2.27)开始,由于对用户体验的负面影响,主线程上的同步请求已被弃用
这就是为什么您会收到警告“不应再使用主线程中的同步XMLHttpRequest”
NS\u错误\u DOM\u错误\u URI:拒绝访问受限URI 我建议换衣服
var basepath = "localhost";
要么
var basepath = "http://localhost"; or
var basepath = "/localhost";
因为,如果我没弄错的话,您想在您的机器上打开URL或本地路径,但“localhost”本身可能两者都不是
如果仍存在此错误,请参阅