javascript - Ajax 将数据发布到外部 URL 不接收回调 javascript jquery
问题描述
$(document).ready(function()
{
$("img").click(function()
{
$.post("https://.co.za/payweb3/initiate.trans",
{
PAYGATE_ID: "1029612100016",
REFERENCE: "Basket_ACDDDDA1-816E-48D7-A9DB-64ECAC97C76",
AMOUNT: "33900",
CURRENCY: "ZAR",
RETURN_URL: "https://www./checkout.asp",
TRANSACTION_DATE: "2019-10-21 9:17:9",
LOCALE: "en-za",
COUNTRY: "ZAF",
EMAIL: "dave@.co.za",
NOTIFY_URL: "https://www./thanks.asp",
CHECKSUM: "6251a4edec03bfcc86ad88112b10637d"
},
//Callback
function(data) {
alert( "Data Loaded: " + data );
//document.form1.submit();
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
我向外部 URL 执行 ajax 发布,但没有收到 HTTP 发布回复。我以前从来没有这样做过,所以我有点迷茫。
我改编了 W3schools 的功能,但有点不知所措……这是来自 URL 的预期回发数据,我没有收到。请帮忙。
PAYGATE_ID=1029612100016&PAY_REQUEST_ID=C7701B85-F479-DBB1-73BE-B1D57F17EAE0&REFERENCE=Basket_ACDDDDA1-816E-48D7-A9DB-64ECAC97C76&CHECKSUM=40c4daefb5e7d1eef6fa6a085789b89c
回调不起作用,不确定我在这里做什么?
解决方案
您的代码段中有几个错误:
您的 HTML 中没有
img
,因此无法单击它。我将其更改为代码段中的一个按钮。您似乎有CORS问题 - 这意味着服务器认为您不允许请求您尝试获取的资源。我把
http://cors-anywhere.herokuapp.com/
你的网址放在前面。请记住,它只是一个测试解决方案,而不是用于生产。您要么必须让提供商设置正确的标头(因此接受您的请求),要么您需要创建一个解决此问题的解决方案。(因此,如果您删除我放在那里的 URL 部分,该片段将不起作用。)- 您的请求数据有问题,因为它返回ERROR=DATA_CHK消息 - 这不是常规的,所以我不知道它的含义或暗示。
$(document).ready(function() {
$('.button').on('click', function(e) {
e.preventDefault();
$.post("https://cors-anywhere.herokuapp.com/https://.co.za/initiate.trans", {
PAYGATE_ID: "123456",
REFERENCE: "Basket_ACDDDDA1-816E-48D7-A9DB-64ECAC97C76",
AMOUNT: "33900",
CURRENCY: "ZAR",
RETURN_URL: "https://www./checkout.asp",
TRANSACTION_DATE: "2019-10-21 9:17:9",
LOCALE: "en-za",
COUNTRY: "ZAF",
EMAIL: "dave@.co.za",
NOTIFY_URL: "https://www./thanks.asp",
CHECKSUM: "6251a4edec03bfcc86ad88112b10637d"
},
function(data) {
console.log('data:', data)
})
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button class="button">CLICK HERE</button>
有关CORS的更多信息:
推荐阅读
- mysql - MySQL - 从表 B 中搜索位于表 A 的多个时间范围内的记录
- python - Qt QTableView 调整大小以适应内容
- memory-management - Tomcat - SharedLoader - 堆增加
- list - Kotlin 聚合函数
- android - 适用于 Android 和 iOS 的 Xamarin 表单的概述材料条目
- kubernetes - Kubectl 状态节点为等效集群提供不同的响应
- ssl - websocket服务器不接受签名的客户端证书
- mysql - 当我使用续集的文字时,没有结果
- python - pygame.error: 视频系统未初始化并且 pygame.get_init() 返回 None
- c# - 如何从集合中的属性中获取 nameof()?