我想知道是否有任何方法可以使用带有 POST 参数的JavaScript导航到新 URL 。
我知道使用 GET 您可以使用以下方法在 URL 上附加一个参数字符串 window.location.replace()
但是有什么方法可以使用 POST 来隐藏参数。还是用jQuery?
我正在使用node.js构建一个应用程序,需要允许用户下载.csv文件.
问题 - 当用户单击按钮时,应用程序不会将文件作为附件发送到客户端.但是,如果客户端直接转到API链接,该文件将下载.例如 - 如果用户去localhost:3000/api/exportmetric,a文件将作为附件发送到客户端.但如果该路由被作为AJAX请求命中,则没有任何反应.
用户流程:
1)用户单击一个按钮
2)App向服务器发出AJAX GET请求
3)服务器从数据库中检索数据
4)服务器将数据解析为.csv文件
5)服务器将文件发送回客户端以作为附件下载.
我的代码:
client.js
$("#export_velocity").click(function(e) {
console.log('export to velocity hit');
$.ajax({
url: 'http://localhost:3001/api/exportmetric',
type: 'GET',
success: function(response) {
console.log(response);
},
error: function(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
}
});
});
Run Code Online (Sandbox Code Playgroud)
server.js
router.get('/api/exportmetric', function(req, res) {
console.log('export metric hit');
var fields = ['first_name', 'last_name', 'age'];
var fieldNames = ['First Name', 'Last Name', 'Age??'];
var people = [
{
"first_name": "George",
"last_name": "Lopez",
"age": "31"
}, {
"first_name": …Run Code Online (Sandbox Code Playgroud) 当我使用 Selenium 执行脚本时,无论我如何尝试避免超时,我都会遇到超时。
我首先将超时设置为长得可笑:
_driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromMinutes(30));
_driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromMinutes(30));
Run Code Online (Sandbox Code Playgroud)
后来,我运行了一个预计需要很长时间的脚本(它正在执行长时间运行的 POST 请求)。无论我使用ExecuteScript或ExecuteAsyncScript,请求都会在 60 秒超时。
我可以做些什么来避免这种情况吗?此时,即使是黑客或解决方法也会很好。
我正在尝试使用纯粹的Javascript在Firefox扩展中创建和发送表单.但是,即使使用最基本的表单,浏览器控制台也会说:
TypeError:form.submit不是函数
我搜索并阅读了几个关于这个主题的帖子,但他们没有处理这个特殊问题.一个常见的错误是有一个名为"submit"的输入,但这不是这种情况.
这是我的代码,灵感来自这个伟大的后期JavaScript帖子请求,如表单提交:
// Create a form
var form = document.createElement("form");
form.action = "http://example.com";
form.method = "POST"
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "submit");
hiddenField.setAttribute("name", "sub");
hiddenField.setAttribute("value", "send");
form.appendChild(hiddenField);
// Create a document
var doc = document.implementation.createDocument ('http://www.w3.org/1999/xhtml', 'html', null);
var body = document.createElementNS('http://www.w3.org/1999/xhtml', 'body');
body.appendChild(form);
doc.documentElement.appendChild(body);
// Call the form's submit method
form.submit();
Run Code Online (Sandbox Code Playgroud)
我是Javascript的新手,所以很可能我犯了一个小错误.谁能给我一个如何解决这个问题的线索?
我想做XMLHttpRequest然后通过POST方法发送文件名在浏览器中打开PDF.
xmlhttp.open("POST","pdf.php",true); //CHANGE
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("file="+input);
Run Code Online (Sandbox Code Playgroud)
这是可能的还是XMLHttpRequest只适用于HTML?
我正在尝试使用 javascript 发出 HTTP POST 请求并将其连接到 onclick 事件。
例如,如果有人单击按钮,然后向 发出 HTTP POST 请求http://www.example.com/?test=test1&test2=test2。它只需要点击 url 即可关闭连接。
我在 python 中搞乱了并让它工作。
import urllib2
def hitURL():
urllib2.urlopen("http://www.example.com/?test=test1&test2=test2").close
hitURL()
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些在这个线程JavaScript post request 就像表单提交中使用 JavaScript 发出 HTTP 请求的方法,但我认为这对于我需要做的事情来说太过分了。
是否可以这样说:
<button onclick=POST(http://www.example.com/?test=test1&test2=test2)>hello</button>
Or build it in to an event listener.
Run Code Online (Sandbox Code Playgroud)
我知道这并不是什么真实的东西,但我只是在寻找一个非技术人员可以使用、遵循指示和实施的简单解决方案。
老实说,我怀疑是否有那么简单的事情,但仍然有任何建议,我们将不胜感激。
我想调用支付网关,因为使用表单提交和方法调用该支付网关post,我可以使用来自节点 js HTTP 模块的 post API 调用调用同一个网关吗,我很困惑,我不能使用 post API 调用网关,因为它不会重定向到新页面,并且表单具有method并且action可以通过 post call 重定向到新页面?
这是我的代码:
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=utf-8"%>
<%
// some code
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Temp </title>
</head>
<body>
<form name="EventConfirmRedirection" method="post" action="event-buy-ticket.jsp">
<input type="hidden" value="<%=seance_id%>" id="seanceId" name="seanceId"></input>
<input type="hidden" value="<%=selected_seat_count%>" id="urlField" name="seatCount"></input>
<input type="hidden" value="<%=seat[0]%>" id="seatId1" name="seatId1"></input>
<input type="hidden" value="<%=ticket_cost[0]%>" id="ticketCost1" name="ticketCost1"></input>
<input type="submit" value="Go" >
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我可以将值发布到下一页.当我点击"开始"时,它会发布.没关系.问题是我不想<input type="submit" value="Go">在屏幕上使用或显示类似的东西.我想自动这样做.当这个页面出现时,它应该直接发布"event-buy-ticket.jsp".
尝试用javascript做到这一点,但我不能.也许有一种简单的HTML方法.
我的PHP/HTML链接如下:
<a href="http://search.mywebsite.com/login.aspx?checktype=uid&user=adam&password=pass1234&profile=dart&defaultdb=kts"> Log me into this website </a>
Run Code Online (Sandbox Code Playgroud)
当用户点击链接时,参数由第三方网站处理,该网站无缝地记录用户.
是否可以隐藏/屏蔽/伪装网址,以便用户在将参数传递到指定网站时看不到参数?
如果不是,你们会怎么做呢?我主要担心用户和密码params并需要隐藏它们.(用户=亚当&密码= pass1234)
我知道如何隐藏params的唯一方法是使用表单发布方法,但在这种情况下,它不是一个选项,因为我使用直接链接.
编辑: 对于那些一直建议使用POST方法的人,这不是一个选项,因为我没有使用表格,接收网站不受我的控制.我正在从一个站点登录到另一个站点(第三方)
如何使用php表单等发布数据重定向到另一个页面?
<button @click="sendData(foo)">Submit</button>
------------------------------
sendData(foo){
//redirect to another page with post data $_POST['foo']
....
}
Run Code Online (Sandbox Code Playgroud)