【问题标题】:Posting JSON Parameters for a pop-up为弹出窗口发布 JSON 参数
【发布时间】:2013-11-17 10:03:44
【问题描述】:

网站上有一个按钮,点击后会打开一个小弹出窗口。如果我在 HttpFox 中看到的发布参数是 JSON 格式。

我对 javascript 和 AJAX 的了解非常丰富。单击相关按钮时,将调用函数 Eam.Ooba.Entry()。

谁能解释一下以下函数的作用:

__EAMSTATE - 是一个发布参数。

Eam.Ooba.Entry = function () 
{ 
Eam.Ooba.Open.Current = null; 
Eam.Prev.length = 0; 
Eam.Ooba.Open(); 
};



Eam.Ooba.Open = function () 
{
    var request = new Object(); 
    request.State = Eam.GetState(); 
    var dto = { 'request': request };
    $.ajax({ url: "OOBAStart.aspx/OobaOpen", data: JSON.stringify(dto) })
    .done(function (msg) { Eam.Ooba.Render(msg, "Eam.Ooba.Open();"); 
    Eam.Ooba.Open_SuccessCallBack(); }).fail(function (msg) { Eam.Dialog.AjaxFailCallback(); });
};



Eam.GetState = function () 
{ 
if ($("#__EAMSTATE").length > 0) return $("#__EAMSTATE").val(); 
else return null; 
};

由于我无法发布 httpfox 的图片,我也无法回答,这就是 httpfox 在发布数据窗口下的样子:

{"request":{"State":"yNNZQG3MCaqYfaU zYaAfF3mjpBqbUjkIP6gNJAmZfrLkq2UN6kpZEqXGM77Reo2cpSuEcrgh6/jLD 5dWGree0TNGw 2z7V0KhhMGm/3xaf8YwX10YI6rBLyGIBHIrHU1Z0bpq2kTT1TwEgICdPTfFc4i/wbliNMH8zRF U6ihoDGUjvqE/AfeCHKVIVRGeX8jCY57JuEtCmK5qKfTpxEukTnKmYI17ng9OlPQZFZfMSDPcz1nj eUU5LbSmxtDNXdMHROTTiNGR6BZqjSUGKgJ/iczaTFAAsICSikDpXK1lUfMOCgmAFuMwIihDcizkH9 kx ikdNqxGNRw4GpY9MSuzchfbxxpNRxzeGS/mTmS6fX2 5zTEjHpH61smEvsU8Rd6oiQLZVYXJa4q798fk IsnDvFJqDjCPFh pEr0a6RjrGp1FyY6HU/xOPj08Bm9OGwl4G/XG2Mm3FUHO/xSUiYZyB4kgp4Di5Vx/EaoOaW5PJJrj9O wyQLVNpofC8F NFzd59Rmbrexe0c6R8T/O6ihw4mxyH9W2tw/H31TL4Y3IzvpXCLqyOFZGahwmaGmfxH6zmYncoLZ0TnWo59LKfqEbE5cUpTGn8iLliwd//E1Sr5Ogiw8P9eb9Wo5pSftA

在标题选项卡下: (请求行)/OOBAStart.aspx/OobaOpen

这就是它在 HTTPFox 中的样子。我正在尝试通过脚本进行完全相同的发布。但我没有得到“状态:”的值,我在源文件的任何地方的 HttpFox 中看到。我在源文件中看到的只是参数 __EAMSTATE 的值,它有点类似于 State: 但不完全一样。那是因为 __EAMSTATE 正在被 JSON.stringify() 方法序列化,我在这里正确吗?

如果我并且正确并且我必须使用 Java 将 __EAMSTATE 的字符串值从源文件转换为 JSON 对象,那么我认为我可以使用以下内容:

String s1 = new String("__EAMSTATE value")
Gson gson = new Gson();
String json = gson.toJson(s1);

【问题讨论】:

  • 没有做任何可以理解的事情。它采用 EAMSTATE 值对其进行序列化并将其 ajax 发送到服务器,然后呈现返回的任何内容。我在网上找不到任何有关 EAM 的内容,因此您可以先解释一下应该是什么。一些插件或专有库
  • 感谢您的回答。您能否进一步说明 EAMSTATE 的序列化?上面代码中的request、url和data是浏览器向服务器发布的三个发布参数。 EAMSTATE 是隐藏类型的输入参数。

标签: javascript jquery ajax json posting


【解决方案1】:

此函数调用 AJAX 请求,如果一切正常,它会调用:

Eam.Ooba.Render(msg, "Eam.Ooba.Open();");

我们没有这个代码,我想它在弹出窗口中显示了一些数据。

【讨论】:

  • 感谢您的回答。是的,弹出窗口会显示可供选择的不同选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
相关资源
最近更新 更多