如何按角度发布表单数据?

时间:2019-04-17 06:45:01

标签: angular cors angular7 form-data angular-httpclient

我正在尝试将表单数据之一发布到已禁用CORS的特定服务器上,这意味着它将仅接受POST方法和完全可以理解的不允许的OPTIONS预检请求,但是其中之一表明如果请求很简单请求(内容类型为= application / x-www-form-urlencoded的POST)不应造成问题,但我仍然会收到

的错误

控制台上的实际错误。

  

在以下位置访问XMLHttpRequest   “ https://****.****.com/hpm/launchTransnoxScreen.hpm”(来源)   “ http://localhost:4200”已被CORS政策禁止:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。

-

能否请您帮助我确定问题所在?我对angular完全陌生,并且刚刚开始探索。

Why is an OPTIONS request sent and can I disable it?

已在URL上方检查


    import { Injectable } from '@angular/core';
    import { Patient } from '../model/patient';
    import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';


    @Injectable({
      providedIn: 'root'
    })
    export class SignupService {
    private url: string = "https://stagemc.transnox.com/hpm/launchTransnoxScreen.hpm";

      private httpHeadersVar = {
        headers: new HttpHeaders({
          'Content-Type': 'application/x-www-form-urlencoded',
          'Accept': 'text/html'
        })
      };
      patientFormData: Patient;
      constructor(private http: HttpClient) { }

      callThP(data) {
        const formData = new FormData();
        formData.append('myKey1', 'some value 1');
        formData.append('myKey2', 'some value 2');
        formData.append('myKey3', 'true');

        this.http.post(this.url, formData, this.httpHeadersVar).subscribe(
          (res) => {
            console.log(res);
          },
          err => console.log(err)
        );
      }
    }

下面的html示例在单击按钮时可以单独正常工作。

它连接到主机并通过示例页面还原。

<html>
    <head></head>
    <body>
        <form id="hppForm" name="hppForm" method="POST" action=" https://stagecp.transnox.com/hpm/launchTransnoxScreen.hpm">
            <input name="uniqueID" id="uniqueID" type="hidden" value="XXX3" />
            <input name="deviceID" id="deviceID" type="hidden" value="test_deviceID"/>
            <button type="submit" class="btn btn-primary btn-block">Sign up</button>
        </form>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

我认为HTTP标头不起作用:请尝试以下操作:

`执行此操作

echo <div align=center><a href='$files_show'>$files_field</a></div>";

如果这不起作用,则可能是您的API不允许使用CORS。

答案 1 :(得分:-1)

您可以点击以下链接:

https://daveceddia.com/access-control-allow-origin-cors-errors-in-angular/

您还应该在创建API的地方检查您的后端语言,然后启用CORS