我試圖聯繫巴克萊支付API,我可以發送POST請求其返回,我想將用戶重定向到使用郵遞員的頁面。無法發送後在角度2,這是工作的郵遞員
然而,相同的請求發送從角度2的應用程序,返回:
的XMLHttpRequest不能加載https://test.barclaycardsmartpay.com/hpp/pay.shtml。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許訪問原產地'http://localhost:4200'。
我覺得這個錯誤消息是誘餌,因爲如果CORS是問題的話,我不知道爲什麼它會在郵遞員來工作。也許是因爲我試圖達到的API接受SOAP請求,我試圖從本地主機執行此操作,無法通過該API進行訪問(以提供雙向連接?)。
在我的角度的應用程序,我的帖子是這樣的:
let paymentPost : iSmartPayment = {
merchantSig: "23XJ9auO4brdZMzPXoe+Lml4H5PfQERgrImns6s4FdQ=",
merchantReference: "abc",
paymentAmount: "1",
currencyCode: "GBP",
shipBeforeDate: "2018-01-01",
skinCode: "neXEF4Y2",
merchantAccount: "GroupEdTest",
sessionValidity: "2018-01-01T00:00:00Z",
merchantReturnData: "http://www.mywebsiteUrl.com.s3-website.eu-west-2.amazonaws.com/#/transactionhistory",
shopperEmail: "[email protected]",
shopperReference: "Sam"
}
return this.http.post('https://test.barclaycardsmartpay.com/hpp/pay.shtml', JSON.stringify(paymentPost)).map((response: Response) => {
console.log('TODO: process response', response);
return response.json();
}).catch(this.handleError);
注意,我在後已經改變了一些值,以保持數據的機密性。
任何想法可能是我的問題在這裏?
郵遞員不具有相同的瀏覽器,通過瀏覽器CORS進行Ajax調用時到位服務器的限制。這是一個CORs問題。另外,你是否真的需要將你的有效負載串聯起來?你應該能夠直接發佈對象。 –
謝謝你的注意事項。謝謝,我會調查如何更改Cors選項 – Sam
這個問題似乎不是Cors。我現在做這個,而不是一個立場HTML表單發佈,它正在工作。我很高興使用html方法,但我很想找到解決這個問題的方法。 – Sam