Клиент js, angular.js
Сервер apache 2.4 + php (openserver)
Пытаюсь кроссдоменно отправить запрос POST запрос с json-ом.
Консоль высылает ошибки
OPTIONS http://testApi.com/test
XMLHttpRequest cannot load http://testApi.com/test. Invalid HTTP status code 405
Сеть. Response Headers
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Accept, X-Requested-Wit, X-Accept-Charset,X-Accept,Content-Type,Accept-Language,Accept-Charset,X-Request-With,Content-Length,Accept,Origin
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*
Allow:POST
Cache-Control:no-cache
Connection:close
Content-Length:4519
Content-Type:text/html; charset=UTF-8
Date:Tue, 14 Jul 2015 22:05:26 GMT
Server:Apache/2.4.10 (Win32)
Сеть. Requeste Headers
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,uk;q=0.2
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:testApi.com
Origin:http://clientApi.com
Referer:http://clientApi.com/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
Файл .htaccess в корне сайта
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Header add Access-Control-Allow-Origin: *
Header add Access-Control-Allow-Methods: "GET, POST, PUT, DELETE, OPTIONS"
Header add Access-Control-Allow-Headers: "Accept, X-Requested-Wit, X-Accept-Charset,X-Accept,Content-Type,Accept-Language,Accept-Charset,X-Request-With,Content-Length,Accept,Origin"
Header add Access-Control-Allow-Credentials: true
Сам файл конфигурации apache
#-----------------------------------------------#
# Основная конфигурация сервера
#-----------------------------------------------#
%httpcharset%
AcceptFilter http none
AcceptFilter https none
AccessFileName .htaccess
DocumentRoot "%ssitedir%/"
EnableMMAP Off
EnableSendfile Off
ExtendedStatus On
HostnameLookups Off
KeepAlive On
KeepAliveTimeout 10
Listen %ip%:%httpport%
Listen %ip%:%httpsport%
MaxConnectionsPerChild %maxrequests%
MaxKeepAliveRequests 100
MaxRanges 200
PidFile "%sprogdir%/userdata/temp/httpd.pid"
ScriptInterpreterSource script
ServerName %ips%
ServerRoot "%sprogdir%/modules/http/%httpdriver%"
ServerSignature Off
ServerTokens OS
ListenBacklog 1024
ThreadLimit 32
ThreadsPerChild 32
ThreadStackSize 8388608
Timeout 30
UseCanonicalName Off
#-----------------------------------------------#
# Подключение модулей
#-----------------------------------------------#
LoadModule access_compat_module modules/mod_access_compat.so
............. подключение куча подулей, пропустил
PHPINIDir "%sprogdir%/modules/php/%phpdriver%"
LoadModule php5_module "%sprogdir%/modules/php/%phpdriver%/php5apache2_4.dll"
<IfModule reqtimeout_module>
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
</IfModule>
#-----------------------------------------------#
# Настройка прав доступа к серверу
#-----------------------------------------------#
<Directory />
Options +FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory "%ssitedir%/*">
AllowOverride All
Options -MultiViews +Indexes +FollowSymLinks +IncludesNoExec +Includes +ExecCGI
Require all granted
</Directory>
<Directory "%sprogdir%/modules/system/html/openserver">
AllowOverride None
Options -MultiViews -Indexes -FollowSymLinks -IncludesNoExec -Includes -ExecCGI
AddDefaultCharset Off
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
Require all denied
Require ip 127.0.0.0/8 ::1/128
Require ip %ips%
%allow%Require all granted
</Directory>
<Directory "%sprogdir%/modules/system/html/default">
AllowOverride None
Options -MultiViews -Indexes -FollowSymLinks -IncludesNoExec -Includes -ExecCGI
AddDefaultCharset Off
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Require all granted
</Directory>
<Directory "/cgi-bin">
AllowOverride None
Options +ExecCGI
Require all granted
</Directory>
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
<IfModule alias_module>
Alias /openserver/ "%sprogdir%/modules/system/html/openserver/"
</IfModule>
#-----------------------------------------------#
# Конфигурация сообщений об ошибках
#-----------------------------------------------#
...... этот блок думаю не важен
#-----------------------------------------------#
# Конфигурация MIME
#-----------------------------------------------#
........этот тоже
#-----------------------------------------------#
# Конфигурация Index-а и иконок
#-----------------------------------------------#
..............
#-----------------------------------------------#
# Подключение языков и кодировок
#-----------------------------------------------#
..............
#-----------------------------------------------#
# Конфигурация SSL
#-----------------------------------------------#
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
<IfModule ssl_module>
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:%sprogdir%/userdata/temp/ssl_scache(512000)"
SSLSessionCacheTimeout 300
Mutex default
SSLCryptoDevice builtin
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLVerifyClient none
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder On
SSLCompression Off
SSLCertificateFile "%sprogdir%/userdata/config/server.crt"
SSLCertificateKeyFile "%sprogdir%/userdata/config/server.key"
</IfModule>
#-----------------------------------------------#
# Исключения User Agent
#-----------------------------------------------#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
#-----------------------------------------------#
# Первичный виртуальный хост "по умолчанию"
#-----------------------------------------------#
<VirtualHost *:%httpport%>
DocumentRoot "%sprogdir%/modules/system/html/default"
ServerName "default"
ServerAlias "default"
<Location /openserver/server-status>
SetHandler server-status
Require all denied
Require ip 127.0.0.0/8 ::1/128
Require ip %ips%
%allow%Require all granted
</Location>
</VirtualHost>
<VirtualHost *:%httpsport%>
DocumentRoot "%sprogdir%/modules/system/html/default"
ServerName "default"
ServerAlias "default"
SSLEngine on
SetEnvIf User-Agent ".*MSIE [1-5].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-9].*" \
ssl-unclean-shutdown
</VirtualHost>
#-----------------------------------------------#
# Конец конфигурации хоста "по умолчанию"
#-----------------------------------------------#
#---------------------------------------------#
# Начало блока конфигурации HTTP хоста #
#---------------------------------------------#
<VirtualHost *:80>
DocumentRoot "C:/OpenServer/domains/testApi.com/public"
ServerName "testApi.com"
ServerAlias "testApi.com"
<IfModule alias_module>
ScriptAlias /cgi-bin/ "C:/OpenServerOld/domains/testApi.com/public/cgi-bin/"
</IfModule>
<Location /openserver/server-status>
SetHandler server-status
</Location>
</VirtualHost>
#---------------------------------------------#
# Конец блока конфигурации HTTP хоста #
#---------------------------------------------#
Спасибо!.