Angular $ http.post返回404错误

时间:2018-01-22 13:10:08

标签: angularjs http 3d-secure

我使用angular JS将一些数据发送到Payment Gateway。

curl根据文档发送数据的语法是:

curl https://www.mybank.co.uk/3dsecure
-H "Content-type: application/x-www-form-urlencoded"
-X POST
-d 'TermUrl=https://www.yourmerchantsite.co.uk/3DSecureConfirmation&PaReq=value-of-oneTime3DsToken&MD=merchantdatavalue'

然而,当我在Angular中这样做时:

 $http({
         method: 'POST',
         url: 'url',
         headers: {'Content-Type': 'application/x-www-form-urlencoded',
                               'Accept': 'text/html'
                               },
         data: $.param({TermUrl: obj.TermUrl ,Pareq:  obj.Pareq }),

   })

我收到错误

     Possibly unhandled rejection: {"data":"<html><head><title>400 Bad 
     Request</title></head><body><h1>Bad Request</h1></body>
           </html>","status":400,"config":
          {"method":"POST","transformRequest":[null],"transformResponse":
         [null],"jsonpCallbackParam":"callback","url":"payement gatway 
     url","headers":{"Content-Type":"application/x-www-form-urlencoded",
    "Accept":"text/html,application/xhtml+xml"},"data":"TermUrl=url&Pare
    q=value"},"statusText":"Bad Request","xhrStatus":"complete"}

请建议如何继续这个?

2 个答案:

答案 0 :(得分:0)

首先,您遇到400 Bad Request(https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400)而不是404 Not Found。

这通常意味着您没有向服务器发送正确的数据,并且API期望某些特定参数(通常来自正文)。

检查API,查看所需的每个参数 - 它们的类型以及它们应该如何发送(正文参数?查询字符串等等)。

您可以使用浏览器网络标签或Postman等工具查看您实际发送到服务器的内容,以及它是否与服务器期望您发送的内容相匹配。

答案 1 :(得分:0)

查看3D Secure的API参考,您应该在http状态代码旁边找到详细的错误代码: https://developer.paysafe.com/en/3d-secure/api/#/introduction/error-summary/common-errors

应该可以轻松调试。