将签名的_请求与AJAX调用一起传递给用CanvasAuthorize修饰的ActionMethod
这是一项后续行动 因此,我发现了以下链接,这似乎是一个常见的问题: 我试着听从prabir的建议,但没能奏效 以下是我的设置: 我在页面中有以下代码片段,触发整个facebook帖子的按钮位于该页面:将签名的_请求与AJAX调用一起传递给用CanvasAuthorize修饰的ActionMethod,ajax,facebook,jquery,facebook-c#-sdk,Ajax,Facebook,Jquery,Facebook C# Sdk,这是一项后续行动 因此,我发现了以下链接,这似乎是一个常见的问题: 我试着听从prabir的建议,但没能奏效 以下是我的设置: 我在页面中有以下代码片段,触发整个facebook帖子的按钮位于该页面: @if (!string.IsNullOrEmpty(Request.Params["signed_request"])) { <input type="hidden" id="signedReq" value="@Request.Params["signed_request"]
@if (!string.IsNullOrEmpty(Request.Params["signed_request"]))
{
<input type="hidden" id="signedReq" value="@Request.Params["signed_request"]" />
}
最后,在一个外部js文件中,我有以下功能:
/*Facebook post item to wall*/
function postOnFacebook(msg, itemLink, pic, itemTitle, signedReq) {
console.log(signedReq);
var siteUrl = 'http://www.localhost:2732';
$.ajax({
url: '/Facebook/PostItem',
data: {
'message': msg,
'link': siteUrl + itemLink,
'picture': siteUrl + pic,
'name' : itemTitle,
'signed_request': signedReq
},
type: 'get',
success: function(data) {
if(data.result == "success") {
alert("item was posted on facebook");
}
}
});
}
但是signedReq总是未定义的。我不确定是否应该在数据对象中传递“signed_request”字段。有什么想法吗?确保正在填充隐藏的输入字段 另外,当您试图通过JQuery提取输入字段的ID时,可能没有引用正确的元素,因为.NET butcher的ID是服务器上运行的任何内容的ID 当我使用隐藏输入字段技巧时,我设置jquery值如下: var signedRequest=$('#').val() 这样,我就得到了.NET给HTML元素的标识符
希望能有所帮助。只是一个猜测-在您的隐藏字段中:id=“signed\u request”而不是id=“signedReq”谢谢您的回复。问题是,
Request.Params[“signed_Request”]
始终为空,因此不会将任何内容发送回服务器。我不知道为什么应该首先填充它,用户不应该在单击按钮后登录到FB,并且在那个时候应该填充已签名的请求吗?我想我错过了一些东西。。。这真让人困惑/
/*Facebook post item to wall*/
function postOnFacebook(msg, itemLink, pic, itemTitle, signedReq) {
console.log(signedReq);
var siteUrl = 'http://www.localhost:2732';
$.ajax({
url: '/Facebook/PostItem',
data: {
'message': msg,
'link': siteUrl + itemLink,
'picture': siteUrl + pic,
'name' : itemTitle,
'signed_request': signedReq
},
type: 'get',
success: function(data) {
if(data.result == "success") {
alert("item was posted on facebook");
}
}
});
}