标签: form-data

'FormData'仅在IE中未定义

我有一个问题,我需要将数据发布为内容类型application/x-www-form-urlencoded.

    var inputData = {cId:"444",pageNo:"1",latitude:"49.153236",longitude:"12.040905"};
    var data = new FormData();
    data.append('data', JSON.stringify(inputData));


    this.model.save(data, {
        data: data,
        processData: false,
        cache: false,
        contentType: false,
        success: function (model, resultData) {
            $.get(App.baseUrl + 'templates/all-offers-view.html', function (data) {
                template = _.template(data, {
                    data: resultData
                });
                that.$el.html(template);
            }, 'html');

        },
        error: function (error) {
            console.log("Error");
            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

虽然以上在所有其他浏览器中工作正常,但我在IE9中收到以下错误.

SCRIPT5009: 'FormData' is undefined 
view.js, line 57 character 9
Run Code Online (Sandbox Code Playgroud)

57号线 var data = new FormData();

我听说FormData()是一个浏览器相关的功能,它与jquery库无关,而在IE中则缺少它.

我使用上述方法的原因是因为我必须以application/x-www-form-urlencoded格式传递数据.

我无法更改服务器端编码(因为它与appstore中的iphone应用程序链接).

我所能做的只是尝试与客户端.

有人有解决方案吗? …

javascript jquery form-data backbone.js

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

使用FORM DATA与Alamofire

我现在使用alamofire已有一段时间了,但我从未使用过表单数据Post.现在我被卡住了.我有2个参数(电子邮件,密码),不知道如何POST他们到服务器.谁能给我一个例子吗?

form-data alamofire swift2

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

在Firefox上,FormData()对象不会从表单添加提交类型输入

今天我遇到了一个有趣的bug,花了很多时间才到达底部.

设置

页面上的表单.在提交时,将捕获数据并new FormData()使用它创建对象.

该对象与脚本一起发送并xhr请求.php,然后脚本返回ok/ error消息.

代码看起来像这样:( 简化版,不需要绒毛)

<form name="frm" id="frm" action="" method="post" onsubmit="save(event, this);" enctype="multipart/form-data">
    <input name="name" id="name" type="text" value="..." />
    <input name="email" id="email" type="text" value="..." />
    <input name="phone" id="phone" type="text" value="..." />
    <input name="website" id="website" type="text" value="..." />
    <textarea name="details" id="details"></textarea>
    <input name="send" type="submit" value="Send" />
</form>

<script type="text/javascript">

function save(e, frm) {

        if (document.getElementById('nume').value == '' ||
          document.getElementById('email').value == '' ||
          document.getElementById('telefon').value == '' ||
          document.getElementById('site').value == …
Run Code Online (Sandbox Code Playgroud)

javascript forms firefox xmlhttprequest form-data

9
推荐指数
1
解决办法
3840
查看次数

如何在角度2的http post请求中发送表单数据?

我试图将更新的用户详细信息的表单数据发送到后端哪个节点服务器角度为2,但是我无法发送表单数据,服务器响应状态为500,在angularjs我做了类似的事情, 服务文件

  update: {
    method: 'POST',
    params: {
      dest1: 'update'
    },
    transformRequest: angular.identity,
    'headers': {
      'Content-Type': undefined
    }
  }
Run Code Online (Sandbox Code Playgroud)

在控制器中

var fd = new FormData();
var user = {
  _id: StorageFactory.getUserDetail()._id,
  loc: locDetails
};
fd.append('user', angular.toJson(user));
UserService.update(fd).
$promise.then(
  function(value) {
    console.info(value);
    updateUserDetailsInStorage();
  },
  function(err) {
    console.error(err);
  }
);
Run Code Online (Sandbox Code Playgroud)

我无法想象如何在角度2中做到这一点,因为angular.toJson,angular.identity和transformrequest功能在角度2中不可用,到目前为止,我已经在角度2中完成了以下操作,

 let fd = new FormData();
 let user = {
   _id: this.appManager.getUserDetail()._id,
   loc: locDetails
 };
 fd.append('user', JSON.stringify(user));
 this.userService.update(fd).subscribe((value) => {
   console.log(value);
   this.updateUserDetailsInStorage();
 }, (err) => {
   console.error(err);
 });
Run Code Online (Sandbox Code Playgroud)

http服务文件

update(body) {
  console.log('update', …
Run Code Online (Sandbox Code Playgroud)

javascript multipartform-data form-data angular

9
推荐指数
3
解决办法
6万
查看次数

React Native FormData 信息被包装到“_parts”中

我是 React Native 的新手,遇到了 FormData 的行为与预期不同的问题。我的代码:

let fileToSend = new FormData();
    fileToSend.append('File', {
    name: 'file.name',
    size: 'file.size',
    type: 'file.type',
    uri: 'file://',
});
Run Code Online (Sandbox Code Playgroud)

我期望得到这样的东西:

fileToSend = {File: [
   name: 'file.name',
   size: 'file.size',
   type: 'file.type',
   uri: 'file://',
]}
Run Code Online (Sandbox Code Playgroud)

但实际上我得到了这个:

fileToSend = [_parts: [
   0: [
     0: 'File',
     1: {
       name: 'file.name',
       size: 'file.size',
       type: 'file.type',
       uri: 'file://',
        }
]]]
Run Code Online (Sandbox Code Playgroud)

这使得我无法将文件发送到服务器。将非常高兴得到您的帮助。谢谢。

multipartform-data form-data react-native

9
推荐指数
1
解决办法
1135
查看次数

如何使用JMeter将application/x-www-form-urlencoded params发送到RestServer?

我开发了一个休息服务器,我把它放在localhost中运行,我正在尝试使用JMeter执行测试,发送请求post和gets(取决于被调用的方法).

我已经发送到Rest服务器并在简单的帖子请求中得到JMeter的结果,获取请求,发送带有帖子的文件,并发送带有帖子的Json.

但我不知道如何将Form-UrlEncoded对象发送到服务器.我的Rest服务器消耗了application/x-www-form-urlencoded,我需要发送3个String参数.

有一些方法可以设置MimeType每个参数并执行测试吗?

我正在使用Jmeter 2.7

  • [更新]

我通过禁用选项解决了这个问题:

use multipart/form-data for post
Run Code Online (Sandbox Code Playgroud)

并启用:

redirect automatically
Run Code Online (Sandbox Code Playgroud)

代替:

follow redirect
Run Code Online (Sandbox Code Playgroud)

我通常在表"使用请求发送参数"中的参数与每个相应的名称.

rest form-data jmeter mime-types

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

如何在上传之前在多个输入类型文件中附加文件

我选择2张图片并再次在上传前第二次选择3张图片,前两张图片从输入类型文件中删除,最后3张图片仍在那里.我知道这是输入类型文件的默认行为,它用新选择的文件替换新文件,但我想保留用户在上传之前多次选择的所有文件.这怎么可能?我正在使用ajax和formdata.

html form-data html-input

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

带有正文表单数据的邮递员请求到 json

我有一个邮递员的问题...

一方面,我可以使用表单数据中的正文发出此请求。 在此处输入图片说明

但是,当我尝试使用 raw(json) 中的正文发送相同的请求时,我得到了这个:

在此处输入图片说明

我正在尝试通过 Angular 5 将数据发送到 Drupal 8 后端。

谢谢!

rest json web-services form-data postman

8
推荐指数
2
解决办法
4万
查看次数

在Java中将POJO转换为表单数据

我有一个形式的POJO:

@Data
public class BaseRequest {
    private String type;
    private Map<String, Object> details;
    private Map<String, Object> signature;
}
Run Code Online (Sandbox Code Playgroud)

我正在运行一个仅接受内容类型的服务:“ application / x-www-form-urlencoded”。

我已经用Java编写了一个客户端,该客户端使用Spring的RestTemplate进行调用。

public String getInvoice(BaseRequest req, String url) {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

    HttpEntity<BaseRequest> httpEntity = new HttpEntity<BaseRequest>(req, headers);
    String response = this.restTemplate.postForObject(url, httpEntity, String.class);
    return response;
}
Run Code Online (Sandbox Code Playgroud)

但是,它将引发错误:

org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [com.x.y.z.BaseRequest] and content type [application/x-www-form-urlencoded]
Run Code Online (Sandbox Code Playgroud)

如果我将内容类型设置为JSON,它将起作用:

headers.setContentType(MediaType.APPLICATION_JSON);
Run Code Online (Sandbox Code Playgroud)

我知道它适用于JSON,因为我已经用JacksonHTTPMessageConverter配置了RestTemplate Bean。因此,我可以轻松地将POJO转换为application / json。但是,我不知道如何使用application / x-www-form-urlencoded做到这一点。

我已经搜索了一段时间,发现的唯一解决方案是编写自己的转换器,将BaseRequest类转换为Spring的MultiValueMap,然后Spring的FormHttpMessageConverter将自动处理它。但我想避免这样做。还有其他解决方法吗?

任何线索将不胜感激。谢谢!

编辑:我的问题不同于 …

java spring form-data pojo resttemplate

8
推荐指数
1
解决办法
1364
查看次数

如何将 Node 中的 multipart/form-data POST 请求转发到另一个服务

我需要从客户端向我的 Node.js 服务器发送 multipart/form-data POST(xliff 文件),然后在 Node.js 中捕获数据并将该 POST 转发到另一个 Java 服务。

我已经使用multerexpress-fileupload来解析表单数据流并在 Node.js 中捕获 xliff 的缓冲区,并且两者都给了我文件及其内容作为缓冲区就好了。

但是,我似乎无法在 Node 层中重新创建 FormData 对象以将 POST 转发到 Java 服务。

我继续收到错误消息“连接终止解析多部分数据”或从 Java 服务中根本没有响应。

我还尝试使用该tmp库在本地创建一个临时文件来写入缓冲区,然后尝试FormData('file', fs.createReadStream(<path>))这样做,但这对我来说似乎也不起作用......尽管我不确定我是否做得正确。

doPOST直接从浏览器使用完全相同的请求工作正常,但是一旦我尝试捕获节点层中的调用,然后将 POST 转发到 Java 服务,它就不再适用于我了。

.

const multer = require('multer');
const upload = multer();

router.post('/', upload.any(), (req, res) => {
  const { headers, files } = req;

  console.log('--------------- files:', files[0]); // object with buffer, etc.

  const XMLString = files[0].buffer.toString('utf8'); // …
Run Code Online (Sandbox Code Playgroud)

post form-data node.js

8
推荐指数
2
解决办法
8027
查看次数