首页 > 解决方案 > 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

回调不起作用,不确定我在这里做什么?

标签: javascript

解决方案


您的代码段中有几个错误:

  1. 您的 HTML 中没有img,因此无法单击它。我将其更改为代码段中的一个按钮。

  2. 您似乎有CORS问题 - 这意味着服务器认为您不允许请求您尝试获取的资源。我把http://cors-anywhere.herokuapp.com/你的网址放在前面。请记住,它只是一个测试解决方案,而不是用于生产。您要么必须让提供商设置正确的标头(因此接受您的请求),要么您需要创建一个解决此问题的解决方案。(因此,如果您删除我放在那里的 URL 部分,该片段将不起作用。)

  3. 您的请求数据有问题,因为它返回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的更多信息:

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

https://www.codecademy.com/articles/what-is-cors


推荐阅读