相关疑难解决方法(0)

Angular 2 - Http获取请求 - 传递json对象

如何进行http get请求并传递json对象

这是我的json-Object

{{firstname:"Peter", lastname:"Test"}
Run Code Online (Sandbox Code Playgroud)

这个对象我想传递http请求以获得匹配人员列表.

这怎么可能?此示例仅显示带有json结果的简单get请求.我该如何修改它?

//Component:

person:Person;
persons:Person [];
....
//Whre can I pass the person, here in the service??
getMatchedPersons(){
  this.httpService.getMatchedPersons().subscribe(
     data =>  this.persons = data,
    error => aller(error)
    );
 ); 
  

  //SERVICE
  //pass parameters?? how to send the person object here?
  getMatchedPersons(){
    return this.http.get('url').map(res => res.json());
  }
Run Code Online (Sandbox Code Playgroud)

javascript http angular

14
推荐指数
3
解决办法
2万
查看次数

无效的URI:Uri字符串太长

我正在尝试获取模式并验证我的xml.

  XmlReaderSetting settings = new System.Xml.XmlReaderSettings();
            settings.Schemas.Add(null, "http://example.com/myschema.xsd");
            settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler); 
            settings.ValidationType = ValidationType.Schema;
            settings.IgnoreWhitespace = false;
            XmlReader reader = XmlReader.Create(xml, settings);
Run Code Online (Sandbox Code Playgroud)

我明白了

Invalid URI: The Uri string is too long


System.UriFormatException was unhandled   Message=Invalid URI: The Uri string is too long.   Source=System   StackTrace:
       at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
       at System.Uri..ctor(String uriString, UriKind uriKind)
       at System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
       at System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)
       at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
       at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
       at …
Run Code Online (Sandbox Code Playgroud)

.net c# xml xsd xmlreader

13
推荐指数
1
解决办法
4万
查看次数

CMS中搜索表单的POST与GET方法

我有点困惑一件事.我无法决定是否在我的搜索表单中使用POST或GET方法.

通常我会将GET方法用于这样的表单,因此用户可以为他们获得的结果添加书签.但是这一次,搜索表单存在于管理区域中,因此结果很快就会相关,并且不需要为结果添加书签,当然,它们并非公开给所有人.

更具体地说,搜索功能旨在与用户列表一起使用,因此可能会有一些特定用户被搜索.我的想法是使用POST方法,其中表单将被重定向到同一页面,因此我将获得按搜索字符串过滤的用户列表.还有分页,所以我会在每个分页链接(下一页,上一页,第一页和最后一页链接)上添加搜索字符串,以便以后不会丢失搜索字符串(在任何后续会话中)搜索,如搜索结果的分页等).

没有明显的理由可以选择一个接一个,两者都可以使用.POST方法会有点麻烦,但另一方面,搜索表单中有高级选项(大约5个复选框),我不喜欢用太多的值来修改URL栏的想法(并且我希望用户不要经常在搜索会话之后使用分页,因此如果使用POST方法,则值不会经常到达地址栏.

您更喜欢在CMS和类似系统中搜索哪一个?

感谢大家!

html architecture post administration get

13
推荐指数
1
解决办法
1万
查看次数

使用<canvas>将非常大的SVG转换为PNG

我试图将一个大的SVG(它的数据URL大约是750000 - 1000000个字符)转换为PNG,方法是将它的数据url传递到一个图像并进入画布,但图像只加载大约1/4的SVG.

通过创建:

var svg_xml = (new XMLSerializer()).serializeToString(svg),
    url = 'data:image/svg+xml;base64,' + btoa(svg_xml);

var img = new Image();
img.width = 730;
img.height = 300;
img.onload = function(){
    var canvas = document.create('canvas');
    canvas.width = 730;
    canvas.height = 300;

    var ctx = canvas.getContext('2d');
    ctx.drawImage(img, 0, 0, 730, 300);

    callbackFn(canvas.toDataURL('image/png');
}
img.src = url
Run Code Online (Sandbox Code Playgroud)

编辑

我已经尝试实现canvg来绘制SVG,但DataURL生成的结果为空白图像:

var svg_xml = (new XMLSerializer()).serializeToString(svg);
var canvas = document.createElement('canvas');
canvas.width = 730;
canvas.height = 300;

var ctx = canvas.getContext('2d');
ctx.drawSvg(svg_xml, 0, 0, 730, 300);
callbackFn(canvas.toDataURL('image/png');
Run Code Online (Sandbox Code Playgroud)

我使用过的方法有什么问题吗? …

javascript svg canvas

13
推荐指数
1
解决办法
1907
查看次数

在正文中发送GET请求参数

我有一个接受许多参数的API.传递参数的值将超过url标头的长度.

我正在使用邮递员客户端传递身体中的参数,但这对于如何使这项工作没有任何想法.

API接受许多参数,因为后端是遗留的,并且由服务总线公开为API

api postman

13
推荐指数
3
解决办法
5万
查看次数

Bookmarklet打开一个新窗口将当前窗口转发到[Object Window]?

我正在使用一个小书签,在新窗口中打开一个网页.它适用于chrome.

但是,当我在Firefox中使用相同的内容时,它会打开一个带有新网页的新窗口,但点击此书签的页面将转发到带有文本的某个页面[object Window].我该如何解决这个问题?

我的代码:

<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');">Bookmarklet</a>
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题.

谢谢

javascript firefox google-chrome bookmarklet

11
推荐指数
1
解决办法
5860
查看次数

Cookie与基于会话的Flash消息

我在CakePHP中找到的一个很好的功能是能够设置flash消息,比如说某些save脚本,然后在下一页显示该消息.像Post updated,或者Error - no file found.

Cake所做的就是这个session对象.我试图避免像瘟疫这样的会议,因为他们对可扩展性的要求很高.我是否可以简单地将Flash消息存储在cookie(客户端)中,然后在下一页显示后删除该cookie?这种方法的优点/缺点是什么 - 或者更简单地说,为什么Cake使用session(我假设这与_SESSION集合有关).

干杯!

ps在我的实现中,我也使用setTimeoutjavascript中的命令淡出.我发现这是结束整个过程的好方法.

php cookies cakephp session-variables

11
推荐指数
1
解决办法
4013
查看次数

如何在MySQL中存储URL

我需要在数据库中存储数百万个URL.每个URL都应该是唯一的,因此我将使用ON DUPLICATE KEY UPDATE并计算重复的URL.

但是,我无法在URL字段上创建索引,因为我的varchar字段是400个字符.MySQL抱怨并说; "#1071 - 指定密钥太长;最大密钥长度为767字节".(Varchar 400将占用1200字节)

如果您需要在一台服务器中每天处理至少500000个URL,那么最好的方法是什么?

我们已经在考虑将MongoDB用于相同的应用程序,因此我们可以简单地查询MongoDB并找到重复的URL,并更新该行.但是,我并不赞成使用MongoDB来解决这个问题,我想在这个阶段只使用MySQL,因为我希望在开始时尽可能精简并更快地完成项目的这一部分.(我们还没有玩过MongoDB,也不想在这个阶段花时间)

使用更少的资源和时间是否还有其他可能性.我想要获取URL的MD5哈希并存储它.而且我可以将该字段改为UNIQUE.我知道,会有冲突,但如果这是唯一的问题,那么在1亿个网址中可以有5-10-20个重复项.

你有什么建议吗?我也不想花10秒钟只插入一个URL,因为它每天会处理500k个URL.

你会建议什么?

编辑:根据请求,这是表定义.(我现在不使用MD5,它用于测试)

mysql> DESC url;
+-------------+-----------------------+------+-----+-------------------+-----------------------------+
| Field       | Type                  | Null | Key | Default           | Extra                       |
+-------------+-----------------------+------+-----+-------------------+-----------------------------+
| url_id      | int(11) unsigned      | NO   | PRI | NULL              | auto_increment              |
| url_text    | varchar(400)          | NO   |     |                   |                             |
| md5         | varchar(32)           | NO   | UNI |                   |                             |
| insert_date | timestamp             | NO   |     | CURRENT_TIMESTAMP | on update …
Run Code Online (Sandbox Code Playgroud)

mysql

11
推荐指数
1
解决办法
1万
查看次数

浏览器中location.hash的最大大小

我想使用location.hash编码我的客户端应用程序的状态,这样用户可以使用URL轻松地在完整状态下书签和/或共享应用程序.

关于URL的最大长度有许多(过时的)主题,特别是Internet Explorer中的限制.但是目前尚不清楚最大尺寸是多少location.hash.由于散列仅存在于客户端中,因此http或服务器的限制无关紧要.

我做了一个简单的jsfiddle测试这个:http://jsfiddle.net/Jz3ZA/.在Chrome和Firefox(Ubuntu 12.04)中,最多可以使用高达50K的哈希值.这是否意味着我可以使用它们来存储状态,还是我忽略了其他限制?

javascript browser firefox internet-explorer google-chrome

11
推荐指数
2
解决办法
3202
查看次数

HTTP GET和POST语义和限制

本周早些时候,我不得不做一些感觉违反语义的事情.让我解释.

我正在制作一个简单的AJAX客户端应用程序,它向具有给定数量参数的服务发出请求.由于整个应用程序基本上是只读的,我认为使用HTTP GET是可行的方法.我必须传递的一些参数很简单(例如排序顺序或页码).

但是,其中一个必需的参数可能是可变长度的,这让我很担心.由于我编写了GET请求的查询字符串中的所有参数,因此在我看来,这为请求URL设置了(大约)2000个字符的不必要的上限.无论如何,我不喜欢看到500个字符长的请求URL.

因此,由于POST请求没有这样的限制,我决定切换.但这感觉不对.我的印象是POST表示数据的修改 - 但我将它用于简单的只读请求.

有一个更好的方法吗?要执行GET,有多个参数?我听说过一种方法 - 你自己对参数进行初步POST ,然后执行GET.但是,这种技术还有很多不足之处.

但是从这个具体案例来看,HTTP请求方法的真正语义和局限是什么?为什么GET不支持任何类型的参数有效载荷?使用URL中的查询字符串对我来说几乎感觉像是一个黑客.

http http-get http-post

10
推荐指数
1
解决办法
3789
查看次数