2017-06-22 46 views
0

我正在检索网站,组和用户的列表。我将它们连接并放置在它们各自的变量中,并将它们以查询字符串形式发送到aspx文件。Jquery发布和丢失数据

var url = (Page._BASE_URL + 'Mo/Un/Unis/Unifie.aspx?' + getUserSecurityParameter() + 
    '&action=sending&userIds=' + encodeURI(userIds) + 
    '&siteName=' + encodeURI(site) + 
    '&groupName=' + encodeURI(groupName) + 
    '&siteList=' + encodeURI(siteList) + 
    '&team=' + encodeURI(team) + 
    '&users=' + encodeURI(users)+ 
    '&site=' + encodeURI(site)); 

我使用此代码从ajax帖子检索这些值。我注意到,当我注意到检查aspx源码时,组和站点之间的数据太多以至于用户变量和数据从不存在。

var siteName = $.getUrlVar('siteName'); 
var groupName = $.getUrlVar('groupName'); 
var users= $.getUrlVar('users'); 

有没有更好的方法来做到这一点,所以我不会有这个问题?由于丢失了用户数据,它会在后端写入查询。提前致谢。

这就是我现在拥有的。当我尝试发送数据时,出现错误。我不能看到错误是不幸的。

var requestParameters = 
    { 
     siteList: siteList, 
     team: team, 
     users: users, 
     siteName: site, 
     site: site, 
     group: group, 
     userId: userId, 
     securityCode: getUserSecurityParameter() 
    }; 

$.ajax({ 
    url: Im._B + 'Mo/Uni/Unif/Ui.aspx/getValues', 
    type: "POST", 
    data: JSON.stringify(requestParameters), 
    contentType: "application/json; charset=UTF-8", 
    done: function (requestParameters, textStatus, jqXHR) { 
     var left = Math.floor((screen.width - 545)/2); 

     windowManager.openFixed(url, 'DocumentListWindow', left, /* top: */ 10, /* width: */ 1480, /* height: */ 840); 
}, 
    error: function (jqXHR, textStatus, errorThrown) { 
    alert('An error occurred trying to send the data.'); 
} 
}); 

Ui.aspx.cs

[System.Web.Services.WebMethod] 
public static string getValues(string requestParameters) 
{ 

    string mystuff = requestParameters; 
    return mystuff; 
} 

ERROR “{\” 消息\ “:\” 操作无效由于对象的当前状态\ “\” 堆栈跟踪\“:\”

+1

如果这些变量中包含大量数据,则不应将它们作为url查询参数传递,您应该将它们放在POST请求的主体中。 –

+0

对此抱歉。请求参数。 – jan86

+0

@AlexR我更新了问题 – jan86

回答

0

虽然技术上对查询字符串的长度没有限制,但单个浏览器do have limits。按照Alex的建议并将其转换为帖子。

+0

我更新了问题 – jan86