Question: I have a class that is called MyMethodQuery that contains a property of entry of my web method

```
[DataContract()]
public class MyMethodQuery
{
    [DataMember(IsRequired = true)]
    [StringLength(100, MinimumLength = 10)]
    public string Id{ get; set; }
}

```

My Web Method :

```
public string MyMethod(MyMethodQuery MyMethodQuery)
{
   return "it's ok !";
} 

```

I want to throw an exception if I leave the empty property. But it doesn't work in spite of the attribute `StringLength`.

I test my method with SoapUI.

Answer: 
Your request includes non-simple headers `Content-type` and `signature` which must be included in the response's `Access-Control-Allow-Headers` header.

(`Content-type` is sometimes a simple header, but only for particular values. `application/json` is not one of those values, and it causes `Content-type` to become non-simple.)

Add `Content-type` to `Access-Control-Allow-Headers` in your server's preflight response.

POSTMAN is not bound by the same-origin policy, so it does not require CORS support from the server.
Is your browser making an OPTIONS request before POSTing?
check the NET tab
I've had issues before where an OPTIONS request was being made by the browser or Angular (don't know which) and the server did not have ...

"Access-Control-Allow-Methods": "GET, POST", "PUT", "DELETE", "OPTIONS";