【问题标题】:How to Pass a JSON object as a parameter with an url?如何将 JSON 对象作为带有 url 的参数传递?
【发布时间】:2017-07-27 10:03:15
【问题描述】:

我使用下面的 url 来传递一些参数以及 url。但我想传递一个 JSON 对象而不是参数。

因此,您有任何解决方案或建议。

javascript:void window.open("http://173.229.213.72:9000/index.html#/myurl/seeallmyassets/**param_1/param_2**"%2C""%2C"toolbar=no%2Clocation=no%2Cdirectories=no%2Cstatus=no%2Cmenubar=no%2Cscrollbars=no%2Cresizable=1%2Ccopyhistory=no%2Cwidth=1050%2Cheight=750%2Ctop=42%2Cleft=195"); 

我正在使用 angular js 1.5 还告诉我在状态提供程序中我需要做什么。

$stateProvider.state('myurl', { url: '/test/:param_1/:param_2/:param_3', templateUrl: 'common/templates/myUrl.html', 控制器:'myCtrl' });

我想通过请求 = { param_1: abc, 参数_2:定义, param_1:吉, 参数_2:jkl, param_1: mno, 参数_2:pqr, param_1: stv, 参数_2:紫外线, 参数_1:xyz, 参数_2:qwe }; "http://173.229.213.72:9000/index.html#/myurl/seeallmyassets/:request"

【问题讨论】:

    标签: javascript url httprequest httpresponse


    【解决方案1】:

    编码后直接作为字符串传递:

    var uri = "http://173.229.213.72:9000/index.html#/myurl?jsonObj={'property1':'val1', 'property2':54}";
    var encodedUri = encodeURI(uri)
    window.open(encodedUri );
    

    【讨论】:

    • 所以在状态提供者中我需要发送什么 $stateProvider.state('myurl', { url: '/test/:param_1/:param_2/:param_3', templateUrl: 'common/templates/ myUrl.html',控制器:'myCtrl' });
    • 哦,好吧...我在您添加“我正在使用 Angular js 1.5”之前发布了我的答案,我无法回答,我对 Angular 了解不够
    • 如果其中一个 json 键值中包含 &,这可能会中断。 IE:action=go&jsonObj={'key1': "this & that", "key2" : "hello world"} - 如果你将它传递给另一个脚本,你必须首先解析参数,然后将 jsonObj 参数重新转换回一个真实的对象 - 但解析部分将在所有 & 上拆分 - 这也将将 jsonObj 拆分为 param1 和 param2。这是我现在正在处理的一个棘手的问题......并且在使用 new URL()new URLSearchParams() 时使用 encodeURI() 并没有帮助;尝试将 url 字符串拆分回参数。
    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多