将http请求发布到第三方服务器并通过重定向获取响应

时间:2016-08-28 07:09:41

标签: javascript c# asp.net asp.net-mvc redirect

我有asp.net mvc项目,我需要以httpRequestObject的形式发送。 我已经尝试了几天,已经向第三方信用卡清算公司网址发出简单的XMLhttp请求,并通过XML格式的重定向取回响应 - 我不在乎iframe或popup进行重定向 检查了整个互联网上的解决方案,在JavaScript上尝试过 - 但据我所知,我无法用JS做到这一点,尝试了asp.net和c#但也没有对我有用。 检查了所有解决方案,但仍然无效。 检查我是否以任何方式被阻止,如代理或防火墙,这不是问题。

我目前的JS代码是 -

function createMPITransaction() {
var terminal_id = "0962832";
var merchant_id = "938";
var user = "my-user";
var password = "my-password";
var url="https://cguat2.creditguard.co.il/xpo/Relay";
var xmlStr = "my string";


var http = new XMLHttpRequest();

http.open("POST",url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader('Access-Control-Allow-Headers', '*');
http.setRequestHeader('withCredentials', true);
http.setRequestHeader('responseType', 'text');

var response = http.responseText;


http.onreadystatechange = function () {//Call a function when the state changes.
    if (http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
console.log(xmlStr);
console.log(http);
http.send(xmlStr);

从控制台获取此内容 -

 XMLHttpRequest {readyState: 1, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: ""…}

我可以在JS上做到吗? 如果没有,我怎么能在asp.net c#上做到这一点? 对第三方服务器的请求限制,并获得重定向并不常见,并使其成为真正的挑战。

1 个答案:

答案 0 :(得分:0)

就重定向的代码而言,您可以查看类似的答案,例如:https://stackoverflow.com/a/3836811/6298965

您可能仍然缺少的是检查您的请求是否符合规范,或者您实际上是否收到了错误,因此您未被重定向。

经过初步分析,我猜api调用可能需要jsonxml。

此外,如果您使用或至少查看github实现,它会更好:https://github.com/mderazon/creditguard-node/blob/master/lib/creditguard.js