伙计们,
这是我的技术问题。如果您有解决方案,请告诉我。
问题是:无法使用 JSONP 进行 POST。由于将 GET 与 JSONP 一起使用存在Bowser URL 限制,因此我们实际上想使用 JSONP 进行 POST。互联网上提到了一些复杂的解决方案,但我不确定是否推荐它们。例如,我希望将以下 web 方法用作 POST 方法(而不是 GET 方法),否则它会超过 IE 中 2000 个字符的 URL 限制。请注意,此方法通过只包含少量参数而变得很小。
[OperationContract]
[Description("Accepts input profile values and returns back insert status as true or false.")]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "InsertProfileDetails")]
bool InsertProfileDetails(string AuthToken,
int Caste_Id, Boolean IsCasteNoBar, char Gender, int Age, int Height, string Complexion, string Marital_Status, int Religion_Id, int MotherTongue_Id, string Profile_Description,
string Education_Level,
DateTime Dob,
string Profile_FirstName, string Profile_LastName, string Address_Line1, string City, string State, int Country_Id, string ContactEmail, string CellPhonePrimary, string HomePhoneSecondary, string WorkPhoneOptional,
string EmploymentSector, string Profession,
int Min_Age, int Max_Age, int Min_Height, int Max_Height, string Religion_Ids, string Caste_Ids, string MotherTongue_Ids, string Education_Levels
);
考虑到这些限制,我能想到的唯一选择是提交小型表单(在“创建配置文件”用户场景的情况下使用多个表单),这反过来又调用更小的 GET Web 方法。而在服务器端,只有在接收到所有小表单数据后,才将表单数据提交到数据库。我们应该通过在每个表单请求期间使用从客户端发送的一些 Guid 来关联服务器端的所有小型用户表单。
让我知道你的想法。感谢您花时间阅读我的帖子。
谢谢,普莱特