Я пытаюсь отправить некоторые данные из моего приложения flex в скрипт PHP, который будет сохранен.Flex Post to php page
В качестве простого теста я сделал скрипт PHP как так
<?php
if ($_POST) {
$message = "Text:" . $_POST['Text'];
mail('[email protected]', 'POSTED!', $message);
} else {
mail('[email protected]', 'No Post Test', 'Testing..');
}
?>
Если я попал сценарий в браузере я получаю по электронной почте штраф. Но когда я называю функцию flex, я ничего не получаю? Я делаю это неправильно?
private function onTextMessageRecv(event:AsyncDataEvent):void
{
var dialogID:String = event.data;
var strFrom:String = event.data2;
var strTime:String = event.data3;
var MessageStr:String = event.data4;
var variables:URLVariables = new URLVariables()
variables.From = strFrom;
variables.To = m_strUserDisplayName;
variables.Text = MessageStr;
saveIMdata(variables);
}
private function saveIMdata(variables:URLVariables):void
{
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, "Saving IM...");
var myData:URLRequest = new URLRequest("http://im.vlowe.co.uk/save.php")
myData.method = URLRequestMethod.POST
myData.data = variables
var loader:URLLoader = new URLLoader()
loader.dataFormat = URLLoaderDataFormat.VARIABLES
loader.load(myData)
}
Я вижу запись в журнале для «Сохранение IM ...», но нет электронной почты?
Спасибо за любую помощь.
обновление: Пробовал это .. но ни одно событие не срабатывает?
private function saveIMdata(variables:URLVariables):void
{
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, "Saving IM...");
var myData:URLRequest = new URLRequest("http://im.vlowe.co.uk/save.php");
myData.method = URLRequestMethod.POST;
myData.data = variables;
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, variables.Text);
var loader:URLLoader = new URLLoader();
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, "Loaded?...");
loader.addEventListener(Event.COMPLETE, onLoadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(myData);
}
private function onLoadComplete(e:Event):void
{
var loader:URLLoader = URLLoader(e.target);
trace(loader.data);
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, "Load completed");
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, loader.data.toString());
}
private function onLoadError(e:IOErrorEvent):void
{
trace(e.text);
LogAddItem(LOG_CATEGORY_MAIN_DEBUG, "Error " + e.text);
}
Update 2: мой crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="80,843,8080,8081,8082" secure="false"/>
</cross-domain-policy>
Я попробую. Можно ли это решить? –
Я получаю сообщение об ошибке .. [SecurityErrorEvent type = "securityError" bubbles = false cancelable = false eventPhase = 2 text = "Ошибка # 2048" –
Crossdomain.xml должен находиться в корневом каталоге сервера, который вы отправляете данные в. опубликовано редактирование –