首页 文章

Azure存储表插入失败,其中一个“请求输入无效”

提问于
浏览
1

我正在尝试使用Insert Entity API在javascript中将一个哑实体插入Azure存储表 . 我启用了CORS并设法对我的请求进行了身份验证,但是我的死简单请求失败了 One of the request inputs is not valid. 消息

以下是有关请求的更多详细信息:

Accept:application/json;odata=nometadata
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Authorization:SharedKey <account>:<secret>
Cache-Control:no-cache
Connection:keep-alive
Content-Length:70
Content-type:application/json
DataServiceVersion:3.0;NetFx
Host:<account>.table.core.windows.net
If-Match:*
MaxDataServiceVersion:3.0;NetFx
Origin:http://localhost:6091
Referer:http://localhost:6091/
x-ms-date:Fri, 08 Jan 2016 06:23:29 GMT
x-ms-version:2013-08-15

这是请求有效负载:

{消息:“测试”,RowKey:“myrowkey”,PartitionKey:“mypartitionkey”}

这是响应,其HTTP状态为400:

Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:x-ms-request-id,x-ms-version
Content-Type:application/json;odata=nometadata;streaming=true;charset=utf-8
Date:Fri, 08 Jan 2016 06:23:30 GMT
Server:Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Transfer-Encoding:chunked
X-Content-Type-Options:nosniff
x-ms-request-id:4994f291-0002-004d-1cdd-49d7ff000000
x-ms-version:2013-08-15

身体:

{“odata.error”:{“code”:“InvalidInput”,“message”:{“lang”:“en-US”,“value”:“其中一个请求输入无效 . \ nRequestId:4994f291 -0002-004d-1cdd-49d7ff000000 \ n时间:2016-01-08T06:23:30.4716844Z“}}}

我看到有人抱怨这个非描述性的错误信息 . 但是,我很确定这个请求有效负载是好的 . RowKeyPartitionKey 没有特殊字符且 Message 字段不必提供其 odata 类型(但请相信我,我也试过了) . 我也尝试了提供的有效负载,但问题仍然存在 .

2 回答

  • 0

    如果您检查链接到插入实体的文档中的示例JSON正文,您会注意到键应该在引号中 . 尝试发送如下的身体:

    {“Message”:“test”,“RowKey”:“myrowkey”,“PartitionKey”:“mypartitionkey”}

  • 0

    我通过试错法找到了解决方案 . 请求标头 If-Match:* 是问题所在 . 我删除了那个 Headers ,它开始工作了 .

    Azure肯定需要更明确,更清楚地了解其文档和错误消息 .

相关问题