Я взял несколько других ответов и сделал что-то немного более чистым, поместите этот вызов .config()
в конец вашего angular.module в вашем приложении app.js:
.config(['$httpProvider', function ($httpProvider) {
// Intercept POST requests, convert to standard form encoding
$httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$httpProvider.defaults.transformRequest.unshift(function (data, headersGetter) {
var key, result = [];
if (typeof data === "string")
return data;
for (key in data) {
if (data.hasOwnProperty(key))
result.push(encodeURIComponent(key) + "=" + encodeURIComponent(data[key]));
}
return result.join("&");
});
}]);
MSDN объясняет, как Вы делаете, какой popen делает использование Windows API в Наследование Дескриптора Канала . Здесь это обеспечивает хорошо зарегистрированный пример. Это - путь больше низкого уровня, чем _popen
функция, найденная в библиотеке времени выполнения, связанной Jason, но использует API Win32 исключительно.
Можно звонить _popen
, если Вы пишете консольное приложение. Для получения дополнительной информации см. документацию относительно сайта MSDN: http://msdn.microsoft.com/en-us/library/96ayss4b (По сравнению с 80) .aspx
Печально это не особенно легко.
необходимо создать канал с помощью функции win32 (CreatePipe), тогда обычно необходимо копировать конец канала (DuplicateHandle), который Вы даете подпроцессу, чтобы позволить ему быть наследованным, иначе это не будет и следовательно не может использоваться.
Тогда необходимо создать использование процесса CreateProcess (который берет много указателей структуры, включая STARTUPINFO), и передача в STARTUPINFO дескриптор, который Вы копировали как его stdout.
Тогда можно читать из конца чтения канала (ReadFile и т.д.), пока Вы не достигаете eof, тогда необходимо вымыться путем закрытия всех различных дескрипторов win32.