Javascript post api调用和使用post方法提交表单之间有什么区别?
我想调用支付网关,因为该支付网关是使用表单提交调用的,方法为Javascript post api调用和使用post方法提交表单之间有什么区别?,javascript,node.js,api,post,payment,Javascript,Node.js,Api,Post,Payment,我想调用支付网关,因为该支付网关是使用表单提交调用的,方法为post,我是否可以使用节点js HTTP模块的post API调用调用同一网关,我很困惑,我无法使用post API调用网关,因为它不会重定向到新页面,表单有方法和操作可以通过post调用重定向到新页面 表单数据通常按如下方式发送 address=Stackoverflow&poster=Ashkay 而JSON格式的普通帖子 { "address": "stackoverflow", "poster": "As
post
,我是否可以使用节点js HTTP模块的post API调用调用同一网关,我很困惑,我无法使用post API调用网关,因为它不会重定向到新页面,表单有方法
和操作
可以通过post调用重定向到新页面 表单数据通常按如下方式发送
address=Stackoverflow&poster=Ashkay
而JSON格式的普通帖子
{
"address": "stackoverflow",
"poster": "Ashkay"
}
您可以在NodeJS中模拟表单POST请求,例如:
const request = require("request");
request({
uri: "http://www.test.com/payment/gateway.php",
method: "POST",
form: {
address: "Stackoverflow",
name: "Ashkay"
}
}, function(error, response, body) {
console.log(body);
});
从浏览器提交表单有多种方式:
.submit()
方法window.location
设置为新URL)
以下是有关上述计划的更多信息: 使用XMLHttpRequest的编程Ajax调用不会以任何方式处理重定向或来自Ajax调用的响应。它们只是将该响应返回到Javascript。请记住,重定向只是可以从Ajax调用返回的一种特定类型的响应。这与浏览器提交的表单POST不同 带有
fetch()
接口的编程Ajax调用提供了一个自动跟踪重定向的选项。请参阅redirect
选项。但是,即使在这种情况下,所有fetch()
接口确实是获取重定向URL的内容。它不会导致浏览器页面发生更改。为此,您必须编写自己的Javascript代码,以查看3xx重定向响应,然后将窗口位置设置为新的重定向URL。或者,您必须让接口跟随重定向URL然后对新的重定向内容执行一些操作,这些内容将返回到Javascript
这些编程请求不同于让浏览器为您提交表单。在浏览器提交的情况下(不使用Javascript提交表单),浏览器会根据表单响应返回的任何内容执行重定向并更新浏览器中的显示
当您通过Ajax提交表单时,浏览器不会自动对服务器响应执行任何操作。该响应返回到您的Javascript,由您的脚本决定如何处理该响应。如果您希望脚本遵循重定向,则必须检查响应,查看其是否为3xx状态,从相应的标头和将etwindow.location
设置为该新URL。这将导致浏览器显示重定向页面。但是,您必须自己编写该页面,或者找到一个Ajax库,该库提供了执行表单的功能。一个标准Ajax调用只会将表单POST响应返回到您的Javascript—仅此而已。您的脚本必须对此进行处理回应并决定下一步做什么
我很困惑,我不能使用post API调用网关,因为它不会重定向到新页面
您可以。您只需编写自己的Javascript来处理编程API调用的响应,如果是3xx重定向,则将window.location
设置为新URL,以指示浏览器加载新的重定向页面。感谢您的许可,window.location
到新页面会将我重定向到新页面,但它不会像支付网关页面那样是对该页面的post请求。我想我必须使用带有操作的form post方法来点击对网关页面的post请求。某些url不允许get请求。https://stackoverflow.com/a/133997/6790744
我可以动态创建表单元素,并在javascript中点击请求。@AkshayBande-我不明白你现在问的是什么问题。也许你需要创建一个新问题。你可以使用Javascript或HTML表单发布。仅使用HTML表单自动发布(不通过Javascript)将自动更新浏览器的显示。是的,您可以使用Javascript在当前页面中创建表单。我想通过使用Javascript api调用重定向到新页面,如form post action
。https://stackoverflow.com/a/133997/6790744
告诉我,我可以通过c使用javascript对类似表单的URL进行post调用动态创建表单。我认为仅通过使用API,我可以使用winodw.location
进行重定向,但这不会像对URL的post请求那样。