使用C#MVC 5.在IIS 8中托管我的应用程序后出现此问题。
当我的视图页面加载时,加载一个锚点(获取令牌),重定向到带有runame和会话名称的ebay登录页面(runame& sessionID被加载到控制器中并通过viewbag传递并与锚点标记点击事件绑定)。
在控制器中:
apiContext.SignInUrl = "https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?SignIn&RuName=" + apiContext.RuName + "&SessID=" + _sessionID;
ViewBag.sign = apiContext.SignInUrl;
ViewBag.SessionID = _sessionID;
在视图中
$("#eBaySignIn").click(function () {
var childUrl = "@ViewBag.sign";
sessionID = "@ViewBag.SessionID";
alert(sessionID);
var timer = setInterval(checkChild, 500);
var isClosed = false;
function checkChild() {
if (child.closed) {
clearInterval(timer);
var URL = '@Url.Action("AcceBayFinalReturn", "Settings")';
$.ajax({
url: URL,
type: 'POST',
data: JSON.stringify({ sessionIDs: sessionID }),
dataType: 'json',
contentType: 'application/json',
success: function (data) {
alert('Succ');
},
error: function (data) {
alert('Error.');
}
});
}
}
});
登录页面正确加载子窗口。
在“我同意”之后,在eBay同意书中(登录后)窗口关闭。
在主窗口中,我捕获关闭子窗口的事件,并通过ajax(上面给出的代码)将sessionID从视图发送到控制器。在控制器中,我使用apicontext和有效的sessionID调用FetchToken。
try
{
FetchTokenCall ftc = new FetchTokenCall(apiContext);
_token = ftc.FetchToken(_sessionID);
return _token;
}
catch (Exception)
{
return null;
}
但遗憾的是FetchToken没有返回任何内容。怎么解决?