0

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

我对javascript和AJAX的了解是zilch。单击相关按钮时,将调用函数 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);
4

1 回答 1

0

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

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

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

于 2013-11-17T10:18:53.573 回答