XMLHttpRequest cannot load and Response for preflight has invalid HTTP status code 405

Problem

I am using ionic framework and angularjs I use chrome for viewing my logs but here i am doing a login page I am trying to post the user entered data to serve but i am getting this error like .

 OPTIONS http://aflaree.com/qrcodeservice/Service1.svc/login 

and this one is next error XMLHttpRequest cannot load http://aflaree.com/qrcodeservice/Service1.svc/login Response for preflight has invalid HTTP status code 405 after reading some blog i figure there is a CORS extention from from which allows ajax request i tried that also but i am not able to find why this two error is appearing. here is my code

https://plnkr.co/edit/Dz0aFsLqoQcnCxht00z3?p=preview

my code work fine in device but I am getting error in chrome if any one knows why please help me

Problem courtesy of: Mohan Gopi

Solution

CORS actually specifies that two requests should be made to the server on an AJAX call (if certain conditions apply, like sending custom headers).

The first request (the one with the OPTIONS method) is called pre-flight and is used to check if it's safe to send the full request to the server. The response from the server should contain a valid Access-Control-Allow-Origin header containing the URL of the client or *.

Your server (and not the client) is the one that needs to support CORS. It seems you are using .Net for it, so you may want to take a look here on how configure IIS.

You can read more about CORS here.

Solution courtesy of: yorch

Discussion

For iOS devices, also check the protocol used. Using HTTPS instead of HTTP solved the issue for me.

Discussion courtesy of: Gaurav Barge

If you're using chrome, get "Allow-Control-Allow-Origin" plugin. This will let you ignore all CORS errors.

It works on mobile because ionic has a cordova plugin "cordova-plugin-whitelist". In your "config.xml" you'll see the line by default, that means your app can access any URL.

Unfortunately when testing through the browser the cordova plugin is not active.

Discussion courtesy of: TheAppchemist

This recipe can be found in it's original form on Stack Over Flow.